八大排序算法~简单选择排序【记录下标k变量的做用】算法
1,思想:打擂台法,数组中的前n-1个元素依次上擂台“装嫩”,后边的元素一个挨着一个不服,一个一个上去换掉它数组
2,优化:经过记录下标进行优化,减小交换的次数优化
//简单选择排序思想:打擂台法,数组中的前n-1个元素依次上擂台“装嫩”,后边的元素一个挨着一个不服,一个一个上去换掉它 public static void main(String[] args) { int[] arr = {1, 4, 0, 6, 2, 7}; // for (int i = 0; i < arr.length -1; i++){ // for(int j = i + 1; j <= arr.length - 1; j++){ // if(arr[i] > arr[j]){ // int temp = arr[i]; // arr[i] = arr[j]; // arr[j] = temp; // } // } // } //优化一下,经过具备标记做用的下标变量k(标记出最小元素),去标记全部元素比较完的最终结果后, // 而后在擂台上的元素,再跟有标记记号的元素进行交换 for (int i = 0; i < arr.length -1; i++){ int k = i; for(int j = i + 1; j <= arr.length - 1; j++){ if(arr[k] > arr[j]){ k = j; } } if(k != i){ //最终有标记记号的元素不是它自己 int temp = arr[i]; arr[i] = arr[k]; arr[k] = temp; } } System.out.println("排序后结果:"); for(int i = 0; i < arr.length; i++){ System.out.println(arr[i]); } }