1、比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
3、針對所有的元素重複以上的步驟,除了最後乙個。
4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
分類 排序演算法
資料結構 陣列
最差時間複雜度 о(n2)
最優時間複雜度 о(n)
平均時間複雜度 о(n2)
最差空間複雜度 о(n) total, o(1) auxiliary
/**
* 氣泡排序
*/public void maopao() ;
for (int i = 0; i < nums.length - 1; i++) }}
print(nums);
}
1、從第乙個元素開始,迴圈
2、定義乙個最小值索引記錄 minindex, 為當前值索引 i。
3、(當前minindex元素 x ) 對比 剩餘未排序的其他元素。
4、如果發現有小於x的元素,則將該值索引標記為 minindex
5、重複步驟3,4後,交換 minindex 和 i 的值。
分類 排序演算法
資料結構 陣列
最差時間複雜度 о(n2)
最優時間複雜度 о(n2)
平均時間複雜度 о(n2)
最差空間複雜度 о(n) total, o(1) auxiliary
選擇排序的交換操作介於和次之間。選擇排序的比較操作為次之間。選擇排序的賦值操作介於和次之間。
比較次數o(n^2),比較次數與關鍵字的初始狀態無關,總的比較次數n=(n-1)+(n-2)+...+1=n*(n-1)/2。 交換次數o(n),最好情況是,已經有序,交換0次;最壞情況是,逆序,交換n-1次。 交換次數比氣泡排序少多了,由於交換所需cpu時間比比較所需的cpu時間多,n值較小時,選擇排序比氣泡排序快。
/**
* 簡單選擇排序
*/public void ******select() ;
for (int i = 0; i < nums.length - 1; i++)
}if (min != i)
}print(nums);
}
1、從第乙個元素開始,該元素可以認為已經被排序
2、取出下乙個元素,在已經排序的元素序列中從後向前掃瞄
3、如果該元素(已排序)大於新元素,將該元素移到下一位置
3、重複步驟3,直到找到已排序的元素小於或者等於新元素的位置
4、將新元素插入到該位置後
5、重複步驟2~5
平均來說插入排序演算法複雜度為o(n2)。因而,插入排序不適合對於資料量比較大的排序應用。但是,如果需要排序的資料量很小,例如,量級小於千,那麼插入排序還是乙個不錯的選擇
* 插值排序
*/public void insert() ;
for (int i = 1; i < nums.length; i++)
nums[j] = data;
}print(nums);
}核心:先將序列分成較多個子串行分別進行排序,再分成較少個子序列分別進行排序,直到最後為乙個序列排序。
形象的說:比如先分成 8 個子序分別排序,再 4 個子序,再 2 個子序,最後 1 個(1個也就是全部序列啦)。
演算法的最後一步就是普通的插入排序
在大陣列中表現優異的步長序列是(斐波那契數列除去0和1將剩餘的數以**分割槽比的兩倍的冪進行運算得到的數列):0,
各類步長公式
while (seg < nums.length / 3) seg = seg * 3 + 1; // : 1, 4, 13, 40, 121, ...每次的步長。
for (; seg >= 1; seg /= 3)
nums[j] = data;}}
print(nums);
}
一 基礎排序
本篇的基礎排序演算法的複雜度基本上為 o 1.selection sort 選擇排序 演算法思想 首先從未排序序列中找到最小的元素,放置到排序序列的起始位置,然後從剩餘的未排序序列中繼續尋找最小元素,放置到已排序序列的末尾。所以稱之為選擇排序。includeusing namespace std t...
基礎排序演算法一 氣泡排序
氣泡排序 bubble sort 又被稱為氣泡排序或泡沫排序。它是一種較簡單的排序演算法。它會遍歷若干次要排序的數列,每次遍歷時,它都會從前往後依次的比較相鄰兩個數的大小 如果前者比後者大,則交換它們的位置。這樣,一次遍歷之後,最大的元素就在數列的末尾!採用相同的方法再次遍歷時,第二大的元素就被排列...
基礎演算法 排序 一
總結 排序演算法維基百科 經典排序演算法 快速排序quick sort 經典排序演算法 桶排序bucket sort 經典排序演算法 插入排序insertion sort 經典排序演算法 基數排序radix sort 經典排序演算法 鴿巢排序pigeonhole sort 經典排序演算法 歸併排序m...