最近,開始對資料結構和演算法的複習,這是自己以前學習的弱點,現在想來當時自己就應該心無旁鶩的好好學的,但是, 當時有些急功近利,只好現在抓緊時間了。 (這些基本的排序方法,在實際中由於效率問題,可能很少使用,我們之所以要學習這些方法,權當擴充套件知識面,鍛鍊 思維~_~) 1、選擇排序 選擇排序:基本思想是對列表或者列表的一部分進行多次掃瞄,每次選出乙個元素將放到正確位置。 過程就是:陣列元素為n個,從a[0]開始,在a[1]a[n-1]中每乙個都與a[0]比較,選出最小的那個,然後在存放到a[0]位置, 然後再從a[1]開始,再是a[2]...這樣重複n-1次。
對於線性鍊錶: 假設鍊錶陣列node* a[5],節點為node,資料為整形int。
2、交換排序 交換排序:系統的交換那些不符合次序的「元素對」,直到列表中不存在這種元素為止;典型的例子,氣泡排序。 氣泡排序:n個元素的序列,從左到右的比較兩個連續的元素,如果左邊的''右邊的則進行交換,重複該過程n-1次,第i次要進行n-1-i次比較。
3、插入排序 插入排序:基本思想是,反覆地插入新元素到已經排好序的列表之中,且令插入後的列表也是有序的。
總之,不存在最佳的通用排序演算法。對於短列表,線性插入排序的效能比較好一點;對於一般的列表,快速排序、希爾排序和堆排序是比較好的選擇; 如果,序列是基本有序的,我們可以採用氣泡排序。
簡單排序(選擇 冒泡 插入)
逆序對設a aa為乙個有n nn個數字的有序集 n 1n 1 n 1 其中所有數字各不相同。如果存在正整數i ii j jj使得1 i n1 leq i j leq n 1 in而且a i a j a i a j a i a j 則 a i a j a i a j a i a j 這個有序對稱為a的...
簡單排序 選擇 插入 氣泡排序
3種順序排序方法。簡單排序是指時間複雜度為o n 2 的排序方法。1 選擇排序 將某個特定值有序的放置在最終位置上 外層迴圈控制最終位置的序號,內層迴圈從外層迴圈序號處向後遍歷,找到最小值。2 插入排序 插入排序將某個特定值插入到值列的某個子集中,並重複該過程 外層迴圈控制要插入的資料 從第二個數到...
簡單排序方法總結 冒泡,選擇,插入,桶排序
氣泡排序 基本思想 每次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換過來。即如果有n個數進行排序,就要進行n 1趟操作。而每一趟都要從第一位開始進行相鄰兩個數的比較,重複此步驟直到最後乙個尚未歸位的數,已經歸位的數則無需再進行比較。如下 選擇排序 基本思想 每一次從待排序的資料元素中選擇乙個最...