前言
不知不覺,今年已經大半年 時間就過去了,很多公司秋招已經開始了,然後數據結構 與算法就是公司常拿來考察同學們的基礎,今天我們一起來學習Java中最簡單的算法,叫選擇排序算法。
正文
選擇排序算法,是一種簡單直觀的排序算法,它的思路是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全部待排序的數據元素排完。但是注意選擇排序它是不穩定的排序方法的。
代碼演示
public class SelectionSort4 {public static void sort(int[] arr){ for (int i = 0; i < arr.length; i++){ int minIndex = i; int min = arr[i]; for (int j = i+1; j < arr.length; j++){ if (min < arr[j]){ min = arr[j]; minIndex = j; } } if (minIndex != i){ arr[minIndex] = arr[i]; arr[i] = min; } } public static void main(String[] args) { int[] arr = {9,8,7,6,3,4,5}; sort(arr); System.out.println(Arrays.toString(arr));}
時間複雜度
選擇排序的時間複雜度為 O(n^2),第一次需要檢查n個元素,隨後檢查的元素數依次為n - 1, n – 2, …, 2和1。所以說平均每次檢查的元素數為1/2 * n, 所以運行時間也就是為 n * 1/2 * n。簡單地寫作 O(n^2)。
如果有需要Java複習腦圖、Java和大數據電子書,關注且私信「資料」即可獲取相關精品教程以及文檔等資料。