排序演算法有很多,包括插入排序,氣泡排序,堆排序,歸併排序,選擇排序,計數排序,基數排序,桶排序,快速排序等。插入排序,堆排序,選擇排序,歸併排序和快速排序,氣泡排序都是比較排序,它們通過對陣列中的元素進行比較來實現排序,其他排序演算法則是利用非比較的其他方法來獲得有關輸入陣列的排序資訊。
各種排序演算法總結:
相關概念:
穩定:如果a原本在b的前面,a=b,排序之後a還是在b的前面。
不穩定:a在b的前面,a=b,排序之後b跑到了a的後面
時間複雜度:對排序資料的總的操作次數。反映當n變化時,操作次數呈現什麼規律。
空間複雜度:演算法在計算機內執行時所需要的儲存空間的度量,也是資料規模n的函式。
是簡單的一種排序方法,重複的訪問要排序的數列,一次比較兩個元素。
比較相鄰的兩個元素,若前面的比後面的大,就讓他們互換位置
對每一對相鄰的元素,做1中的操作,從第一對到最後一對,這樣最後的乙個數一定是所排序數列中最大的數。
針對所有元素,重複以上步驟
重複1~3,直到排序完成。
**實現:
public static int bubblesort(int arr)原理:在未排序的陣列中找出最小(大)的元素,置於序列的起始位置,然後在從剩下的沒有排序的數中找出最小(大)的,放在已排序的數後面。以此類推,直至排序完畢。}} return arr;
}
變現最穩定的排序演算法之一。因為無論什麼資料進去都是o(n2)的時間複雜度,所以用到它的時候,資料規模越小越好。唯一的好處可能就是不占用額外的記憶體空間了吧。
n個記錄的直接選擇排序可經過n-1趟直接選擇排序得到有序結果
**實現
publicstatic
int selectsort(int
arr)
for(int i = 0;i)
}int temp =arr[min];
arr[min] =arr[i];
arr[i] =temp;
}return
arr;
}
十大經典排序演算法
載自 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排...
十大經典排序演算法
不穩定排序種類為4種 快速排序 核心思想是partition操作 二分法分而治之 平均時間複雜度nlogn 希爾排序 高階版的插入排序,先把間隔較遠的子串行排序,最後間隔為1時,等同於插入排序 插入排序在序列有序時,時間複雜度常數級,所以先讓子串行總體有序,能有效降低時間複雜度 平均時間複雜度n 1...
十大經典排序演算法
常見經典排序 非線性時間比較類排序 通過比較來決定元素間的相對次序,由於其時間複雜度不能突破o nlogn 因此稱為非線性時間比較類排序。線性時間非比較類排序 不通過比較來決定元素間的相對次序,它可以突破基於比較排序的時間下界,以線性時間執行,因此稱為線性時間非比較類排序。時間複雜度 空間複雜度 穩...