思想:每一趟从待排序的数据元素中选择最小(或最大)的元素,顺序放在已经排好的序列最前(或最后),直到全部待排序的数据元素排序完成。分析如下图:
JAVA代码如下:
public static void selectSort(int[] a) {
for(int i=0;i<a.length-1;i++) {
for(int j=i+1;j<a.length;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<a.length-1;i++) {
for(int j=0;j<a.length-i-1;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<a.length;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));
}
转载请注明: 文章转载自:爱思资源网 http://www.aseoe.com/show-16-147-1.html