閒著無聊,用c++實現幾個排序,**如下:
一、氣泡排序
void bubblesort(std::vectorvec)
} }}
中心思想:氣泡排序很簡單,從後往前相鄰兩個數字作比較,把較小的數字排在前邊。兩層迴圈,外層保證遍歷容器內所有數字作為主對比物件,和未被選定的其他元素(內層迴圈保證)對比較。
二、快速排序
void quicksort(std::vectorvec,int beginpos,int endpos)
swap(vec[low], vec[high]);
while (low < high&&vec.at(low) <= flag)
swap(vec[low], vec[high]);
} quicksort(vec, beginpos, low - 1);
quicksort(vec, low + 1, endpos);
}
中心思想:快速排序用到的主要思想是遞迴。在陣列中選擇乙個數字作為篩選條件,這裡選擇第乙個數字;然後分別從後向前h(下標大的位置向下標小的位置,用high表示)和從前往後(用low表示)和選定作為篩選條件的元素比較大小,大的放前邊(或後邊),小的放在另一邊;直到low和high相遇。然後分別在篩選出來的區間重複上邊的操作,直到每個區間都只剩乙個數字。 常見排序演算法的實現
在電腦科學與數學中,排序演算法是一種基本並且常用的演算法,乙個排序演演算法是一種能將一串資料依照特定排序方式的一種演演算法。有效的排序演演算法在一些演算 法中是重要的,如此這些演演算法才能得到正確解答。排序演演算法也用在處理文字資料以及產生人類可讀的輸出結果。由於實際工作中處理的數量巨大,所以排序演...
常見排序演算法的實現
在電腦科學與數學中,排序演算法是一種基本並且常用的演算法,乙個排序演演算法是一種能將一串資料依照特定排序方式的一種演演算法。有效的排序演演算法在一些演演算法中是重要的,如此這些演演算法才能得到正確解答。排序演演算法也用在處理文字資料以及產生人類可讀的輸出結果。由於實際工作中處理的數量巨大,所以排序演...
常見排序演算法的實現
插入排序是最簡單最直觀的排序演算法了,它的依據是 遍歷到第n個元素的時候前面的n 1個元素已經是排序好的了,那麼就查詢前面的n 1個元素把這第n個元素放在合適的位置,如此下去直到遍歷完序列的元素為止。演算法的複雜度也是簡單的,排序第乙個需要1的複雜度,排序第二個需要2的複雜度,因此整個的複雜度就是 ...