选择排序
排序就是将一组对象按照某种逻辑顺序重新排列的过程。其中一种最简单的方式就是,第一步找出数组中最小的那个元素。第二步找到最小的元素后与第一个元素进行交换位置。第三步在剩下的元素中找到最小的元素与数组的第二个元素交换。如此往复,直到整个数组排序。这种方法就叫做选择排序,总是不断的选择剩余元素的最小者。
在这个比较过程中选择排序不管数组元素的初始状态是否有序,其执行时间都是一样,数据在这个过程中移动是最小的。基本最多只需要N此交换就能达到排序的目的。
算法列子:
public class Selection{
public static void sort(Comparable [] a){
int n = a.length;
for(int i = 0;i<n;i++){
for(int j=i+1;j<n;j++){
if (less(a[j],a[i])){
exchange(a,i,j);
}
}
}
}
public static void exchange(Comparable []a ,int i,int j){
Comparable t = a[i];a[i]=a[j];a[j]=t;
}
public static boolean less(Comparable v,Comparable w){
return v.compareTo(w)<0;
}
}
该算法简单实用内外两个循环就可以实现需求。是不是很简单,下面来讲解插入排序