2019年09月18日(星期三)  农历:己亥年八月二十

作者:三年。分类: JAVA

选择、冒泡和插入排序

1、选择排序

思想:每一趟从待排序的数据元素中选择最小(或最大)的元素,顺序放在已经排好的序列最前(或最后),直到全部待排序的数据元素排序完成。分析如下图:

JAVA代码如下:

public static void selectSort(int[] a) {

for(int i=0;i

for(int j=i+1;j

if(a[i] < a[j]) {

int temp = a[i];

a[i] = a[j];

a[j] = temp;

}

}

}

System.out.println(Arrays.toString(a));

}

2、冒泡排序

思想:(1)、比较相邻的元素。如果第一个比第二个大,就交换他们两个。

(2)、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。

(3)、针对所有的元素重复以上的步骤,除了最后一个。

(4)、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

JAVA代码如下:

public static void bubbleSort(int[] a) {

for(int i=0;i

for(int j=0;j

if(a[j] < a[j+1]) {

int temp = a[j];

a[j] = a[j+1];

a[j+1] = temp;

}

}

}

System.out.println(Arrays.toString(a));

}

3、插入排序

思想:每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。

JAVA代码实现:

public static void insertionSort(int[] a) {

for(int i=1;i

int temp = a[i]; //将待插入的元素保存

int j = 0;

for(j=i-1;j>=0;j--) {

if(temp < a[j]) { //待插入元素和已经排序好的元素比较

a[j+1] = a[j]; //将大的元素后移

} else {

break; //说明此时前i个元素已经是有序的,即已找到插入位置

}

}

a[j+1] = temp;

}

System.out.println(Arrays.toString(a));

}

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 0/1505 人参与

发表评论:



手Q扫描加入Java初学者群