简单排序(冒泡、选择、插入)

简单排序(冒泡、选择、插入)Posted on

冒泡排序、选择排序和插入排序代码如下:

package cn.luxh.app.test;public class SimpleSortUtil {/*** 冒泡排序* 从小到大排序* 思路:* 1)第一趟排序进行了len-1次比较,数组中的最大值元素排到了最末端,位置已固定,该元素不再参与下趟比较* 2)第二趟排序进行了len-2次比较,因为只需要比较到第一个位置固定的元素(第一趟排序中的最大值元素)即可,数组中的第二大值元素位置也已固定,该元素不再参与下趟比较* 3)第三趟排序进行了len-3次比较,因为只需要比较到第一个位置固定的元素(第二趟排序中的最大值元素)即可,香港空间,数组中的第三大值元素位置也已固定,该元素不再参与下趟比较* 4)依次类推…** @param array* [] bubbleSort(int[] array) {in;len = array.length;//1)外层for循环计数器out从数组的最后开始,即out等于len-1,每经过一次循环,out减1(往左移);//2)下标大于out的元素都是已经排好序的了;//3)内层for循环计数器in从数组的最开始算起,即in=0,每完成一次内部循环加1,当in等于out时结束一次循环。(out=len-1;out>1;out–) {(in=0;in<out;in++) {if(array[in]>array[in+1]) {temp = array[in];array[in] = array[in+1];array[in+1] = temp;}}}return array;}/*** 选择排序* 从小到大排序* 思路:* 1)第一趟比较时,找到最小的元素,然后这个最小元素和数组最左边(下标为0)的元素交换位置,这个最小值不再参与下次比较* 2)第二趟比较时,从下标为1的元素开始,找到最小的元素,然后把这个最小值元素和下标为1的元素交换位置,网站空间,这个最小元素不再参与下次比较* 3)依次类推…* @param array* [] selectionSort(int[] array) {in;out;len = array.length;for(out=0;out<len-1;out++) {min = out;(in=out+1;in<len;in++) {(array[in]<array[min]) {min = in;}}temp = array[out];array[out] = array[min];array[min] = temp;}return array;}/*** 插入排序* 从小到大* 在外层的for循环中,out计数器从1开始,向右移动,它标记了未排序部分的最左端的数据;* 在内层的while循环中,in计数器从out开始,向左移动,直到temp变量(标志位)的值小于in所指的数组值和in不能再向左移动为止* while循环的每一趟都向右移动了一个已排序的元素*** @param array* [] insertSort(int[] array) {out;len = array.length;for(out=1;out<len;out++) {temp = array[out];in = out;while(in>0 && array[in-1] >=temp) {//大于标志位的值,则右移array[in] = array[in-1];in–;//左移计数器}//插入标志为值array[in] = temp;}return array;}}

测试:

package cn.luxh.app.test;import org.junit.Test;public class SimpleSortTester {@Testpublic void testSort() {int[] array = {6,45,35,23,78,34,26,67,38,90,345,2345,12,3568,80,100};//SimpleSortUtil.bubbleSort(array);//SimpleSortUtil.selectionSort(array);SimpleSortUtil.insertSort(array);displayArray(array);}public void displayArray(int[] array) {for(int a:array) {System.out.println(a);}}}

  这几种简单排序算法时间复杂度都是O(N²),一般都是在数据量小的情况下考虑使用。

  冒泡排序效率最差;

  选择排序降低了元素交换的次数;

  基本上有序时,插入排序比冒泡排序和选择排序要好些。

,香港服务器租用你的脸是为了呈现上帝赐给人类最贵重的礼物–微笑,

简单排序(冒泡、选择、插入)

相关文章:

你感兴趣的文章:

标签云: