總結些常見的排序演算法,方便以後可以重用。
資料量不大,為了表達方便就直接使用了陣列。
int data = null;
data = new int ;
1.氣泡排序
// 氣泡排序,從小到大排序
for (int i = 0; i < data.length; i++)
}}
氣泡排序就是說,排序的過程像水裡往上冒的氣泡一樣,每個數字代表乙個氣泡。值小的氣泡就輕,就會跑過值大的氣泡。每次迴圈的時候,都是臨近的兩個氣泡之間進行比較,值小的氣泡就交換,直到最後氣泡都順序排列為止。
2.選擇排序
// 選擇排序,從小到大的順序排序
for (int i = 0; i < data.length; i++)
}}
選擇排序也是一種常見的排序方法,排序的過程很簡單。比如說,學校軍訓的時候教官首先得按各種高矮排好隊伍,從矮到高,從左到右排隊伍。看到第1個人比第3個高的話,會怎麼辦呢,當然是直接交換兩個人的位置就是了。這樣的把最矮的依次的選出來排在前面的方法就跟這裡描述的過程差不多。
ps:當然,在實際的過程中,中間又有更多的靈活的排列方式,這裡咋不討論。
3.簡單插入排序
// 簡單插入排序
for (int i = 1; i < data.length; i++)
}// 將外圍數字插入到指定位置
data[j] = temp;
}
插入排序的執行效率不高,每次都要去移位。
插入排序的過程,主要是針對已排序好的佇列,然後再放入乙個數字的過程。就跟在一疊已經排好的撲克牌中放入乙個5,你就直接的將5放在6的後面就可以了,在這個過程總,5後面的排都會向後面移動乙個位置(假如,每個牌都單獨的放在乙個位置上的話)。
常用排序演算法總結
常用排序演算法總結 選擇排序 對於長度為n的陣列,選擇排序需要大約n2 2詞比較和n次交換。插入排序 對於隨機排列的長度為n且主鍵不重複的陣列 1 平均情況下,需要 n2 4次比較以及 n2 4次交換。2 最壞情況下,需要 n2 2次比較以及 n2 2次交換 3 最好情況下,需要n 1次比較以及0次...
常用排序演算法總結
注 所有排序都是寫的由小到大排序的情況 1.插入排序 1 直接插入排序 穩定 arr sortedindex 1 key 注意這裡的下標 sortedindex 1 2 希爾排序 不穩定 希爾排序好的增量序列的共同特徵 希爾排序演算法 fromid 1801475 type syn 最後乙個增量必須...
常用排序演算法總結
includeusing namespace std show array void show int ar,int len selectsort 直接選擇排序不穩定 最好最壞平均時間複雜度都是o n 2 空間複雜度o 1 void selectsort int ar,int len else ar...