直接选择排序很容易和直接插入排序搞混,其实它们俩个有相同点但是也有很明显的不同。
相同点:都是将数据分为有序组和无序组
不同点:直接插入排序默认数组的第一个元素为有序组,然后选择无序组的第一个元素将其和有序组的数据进行比较,然后找到一个合适的位置;而直接选择排序没有默认的有序组,是从无序组中选择其中最小的数据,将其直接放在有序组的最后就可以
Java代码如下:
package sort;
//直接选择排序
//2015-05-30
public class SelectSort {
public void Select(int a[],int n){
int i,j,nMin;
for(i=0;i<n;i++){
nMin =i;
for(j=i+1;j<n;j++){
if(a[j]<a[nMin]){
nMin=j;
}
swap(a,i,nMin);
}
}
}
public void swap(int a[],int p,int q ){
int k;
k=a[p];
a[p]=a[q];
a[q]=k;
}
}