拿未排序的第一个元素与其它元素依次进行比较,每轮比较获得一个最值(根据需要取最大或最小置于未排序元素首位),比较n-1轮。
第一轮比较:
第二轮比较:
第三轮比较:
第四轮比较:
根据上述,可以得出:n个元素要进行n-1轮比较,每轮比较次数-1;时间复杂度为O(n^2)。
void selectionSort(int[] arr){ int temp; //进行比较轮次 for (int i=0;i<arr.length-1;i++){ //每轮比较次数 for(int j=i+1;j<arr.length;j++){ //拿未排序的首位依次比较后面元素 if(arr[i]>arr[j]){ temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } }
原文:https://www.cnblogs.com/chigejuzhi/p/14299800.html