爪子说选择排序
选择排序{
比如有一个数组,然后你要排序,你这样,你在数组里进行循环{
你在每一次选择中选出最小(大)的一个值,然后标号记为i;
当选出最小(大)的时候你把它想成你放在该数组外面,开始从下标i+1开始遍历该数组
以此类推;
}
}
下面看我的代码(入门版,不考虑时间复杂度)(高手勿喷)
public class Main {
public static void printArray(int[]arr){
for(int i:arr){
System.out.print(i+" ");
}
}
public static void SelectionSort(int []arr){
//sort
int len = arr.length;
if(len == 0 || len <= 2 ){
return ;
}//做一个安全判断
for(int i = 0 ; i <len ; i++){
int minValueIndex = i;
for(int j = i+1 ; j < len ; j++){
minValueIndex = (arr[j] < arr[minValueIndex])? j : minValueIndex;
}
swap(arr , i , minValueIndex);
}
System.out.println();
}
public static void swap(int []arr , int i , int j ){
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
public static void main(String[] args) {
int []arr = {7,9,56,1,8};
printArray(arr);
SelectionSort(arr);
printArray(arr);
}
}
进行不断换位来进行排序,该代码时间复杂度为:O(n*2);
今天改csdn名字为:爪子,哈哈哈哈哈
多学习,多锻炼