-
选择排序算法
public class Sort {
/**
* 选择排序
*/
void selectSort(int arr[],int len){
int min,temp,j,i,c1=0,c2=0;
for(i=0;i<len-1;i++){
min=i;
for(j=i+1;j<len;j++){
c1++;
if (arr[min]>arr[j]){
min=j;
}
}
if(min!=i){
c2++;
temp=arr[min];
arr[min]=arr[i];
arr[i]=temp;
}
}
System.out.println("比较"+c1+"次,"+"移动"+c2+"次");
}
}
-
测试类
public class Test {
public static void main(String[] args) {
int[] arr=new int[]{5, 2, 6, 9, 3, 0, 1, 7, 4, 8};
Sort s=new Sort();
s.selectSort(arr,arr.length);//比较45次,移动6次
for(int k=0;k<arr.length;k++){
System.out.print(arr[k]);
}
System.out.println();
}
}
根据测试结果发现,选择排序优于冒泡排序!