选择排序
选择排序思想为:给数组元素排序,首先找出最大的元素,把它移到a[n-1].然后余下的n-1个元素中找出最大的元素,把它移到a[n-2].如此进行下去,直至剩下一个元素。
如下图所示,要排序的数组为a[0:5]=[6,5,8,4,3,1].阴影部分是没有排序的部分,深色杠标志的是最大的元素的位置。
具体实现代码如下:
//选择排序
public void sortIntegers(int[] A) {
// Write your code here
int n=A.length;
for(int size=n;size>1;size--){
int j=max_num(A,size);
int x=A[size-1];
A[size-1]=A[j];
A[j]=x;
}
}
//找出未排序数组中最大元素的下标
public int max_num(int []A,int size){
int max=0;
for(int i=1;i<size;i++){
if(A[max]<A[i]){
max=i;
}
}
return max;
}