选择排序基本原理:
对于给定的一组记录,进过第一趟比较后得到最小记录,然后将该记录与第一记录的位置进行交换;接着对不包括第一个记录以外的其他记录进行第二轮比较,得到最小的记录与第二个位置的元素进行交换;重复这个过程,直到进行比较的只有一个为止。(简言之就是找到最小的与第一位置的元素互换,找到)。选择排序的时间复杂度为O(n^2)。下面是使用Java实现选择排序的代码
public static void selectSort(int[] arr){
int i,j;
int flag;//用于记录每次比较以后的最小值的下标
int temp;//用于记录每次比较以后的最小值
for(i=0;i<arr.length;i++){
temp=arr[i];
flag=i;
for(j=i+1;j<arr.length;j++){
if(temp>arr[j]){
temp=arr[j];
flag=j;
}
}
if(flag!=i){//如果最小值的位置不是当前的位置i,则进行交换
arr[flag]=arr[i];
arr[i]=temp;
}
}
}
参考资料
《Java程序员面试笔试宝典》何昊,薛鹏,叶向阳编著