算法-java-排序

1,一般排序如選擇排序、冒泡排序,選擇排序即將數組中元素從第一個開始挨個和其他元素比較,冒泡排序即元素兩兩交換使得較大或較小元素到最後。

2,希爾排序:首先取一個數字n作爲間隔,將數組分爲多個小組,然後小組內部進行大小排序;依次改變間隔,使得每個小組的數據依次增多,仍然對其排序,最後間隔爲1時,排序完成;

3,堆排序:首先將數組轉換成堆,然後將堆調整成大堆序,然後依次將root元素與最後的元素進行交換、調整堆,最後按照BFS(breadth first search)進行遍歷,得到有序數組;

4,歸併排序:首先將數組分解成1個個的,然後依次將2個挨着的合併排序,3個挨着的合併,最後合併成一個組時,整個數組就成爲有序的;

5,快速排序:以升序排列爲例,選取數組第一個元素爲基準點,然後從數組兩端各取一個探針,右側探針開始移動直到遇到一個比第一個元素小的數爲止,停止移動,然後將左側探針開始移動,知道遇到一個比第一個元素大的數爲止,此時互換兩個探針指向的元素,然後繼續移動兩個探針,依次執行上述交換元素的步驟,直到兩個探針相遇,將第一個元素與此時探針指向的元素交換,此時就成功將數組分成兩份,基準點左側的都比基準點小,右側的都比基準點大;然後依次將兩份分組實現剛剛的操作,最後實現數組排序;

6,桶排序:找出序列中最大的數,準備空間爲這個數的數組,若最大數爲10,則有數組a[0]-a[10]的值都爲0,然後依次將序列中出現的值記錄到數組中,如5出現兩次a[5]=2,8出現一次,a[8]=1,最終順序輸出a[0]-a[10]的值,這就是序列升序排列後的順序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章