選擇排序:
思想:每一趟從待排序的資料元素中選出最小(或最大)的乙個元素,順序放在已排好序的數列的最後,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法。
public static voidselectsort(intarr)
}temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}插入排序:
思想:插入排序的基本操作就是將乙個資料插入到已經排好序的有序資料中,從而得到乙個新的、個數加一的有序資料,演算法適用於少量資料的排序,時間複雜度為o(n^2)。是穩定的排序方法
public static voidinsertsrot(intarr)
arr[j] = target;
}交換排序:
思想:所謂交換,就是根據序列中兩個記錄鍵值的比較結果來對換這兩個記錄在序列中的位置,交換排序的特點是:將鍵值較大的記錄向序列的尾部移動,鍵值較小的記錄向序列的前部移動。
public static voidexchangesort(intarr) }}
氣泡排序:
思想:氣泡排序,是指計算機的一種排序方法,它的時間複雜度為o(n^2),雖然不及堆排序、快速排序的o(nlogn,底數為2),但是有兩個優點:1.「編 程複雜度」很低,很容易寫出**;2.具有穩定性,這裡的穩定性是指原序列中相同元素的相對順序仍然保持到排序後的序列,而堆排序、快速排序均不具有穩定 性。不過,一路、二路歸併排序、不平衡二叉樹排序的速度均比氣泡排序快,且具有穩定性,但速度不及堆排序、快速排序。氣泡排序是經過n-1趟子排序完成 的,第i趟子排序從第1個數至第n-i個數,若第i個數比後乙個數大(則公升序,小則降序)則交換兩數
public static voidbubblesort(intarr) }}
幾種簡單的排序
今天檢視了arrays.sort a 的源 發現好複雜,根據a的長度不同,arrays.sort a 會呼叫不同的排序方法。簡單複習了下 快速排序 很簡單,把比某個數大的放右邊,小的放左邊。private static int partition int n,int left,int right i...
幾種簡單的排序
1.氣泡排序 主要思路 從前往後依次交換兩個相鄰的元素,大的交換到後面,這樣每次大的資料就到後面,每一次遍歷,最大的資料到達最後面,時間複雜度是o n 2 2.選擇排序 主要思路 每次遍歷序列,從中選取最小的元素放到最前面,n次選擇後,前面就都是最小元素的排列了,時間複雜度是o n 2 3.插入排序...
幾種簡單的排序演算法
整理了一下幾種簡單的排序演算法,暫時先貼上演算法,以後有時間在乙個乙個注釋 參考 下面是 部分 include 演算法1 氣泡排序,時間複雜度o n 2 基本思想 從最後乙個數開始,每次相鄰兩個數字比較,較小數往上浮動 void bubblesort int a,int c 演算法2 選擇排序,時間...