部分排序的思想與適用場合

2021-09-11 00:09:42 字數 810 閱讀 4966

氣泡排序:

思想:相鄰兩個元素要進行比較若前比後大要交換 

優化:快排是氣泡排序的優化

氣泡排序的優化:1.若給定的陣列全部都是排好序的那麼此陣列就一定不會進入交換定義乙個標記即可

2.若給定的陣列一部分是有序的我們可以標記最大有序位置即進入交換的位置然後改變迴圈的次數即可

選擇排序:簡單選擇排序 堆排序

簡單選擇排序(select)思想:找最大的往後放,或者是找最小的往前放

堆排序:大根堆 父親的值比孩子的都大

1.構建大根堆 從最下面的父親結點開始向上調整

2.進行排序 此時根結點的值一定是最大的我們將根結點的值與最後乙個結點的值進行交換 然後再調整

插入排序:思想:將待排序陣列分為兩部分一部分有序一部分無序將無序的元素插入到有序的元素中去

插入排序分為 1.直接插入排序

2.希爾排序

適用場合:元素個數少

在排序之前各個元素位置離最終排序位置不遠的時候

希爾排序為什麼跳著分組?

分組然後再插入

計數排序:

要求:元素分配的比較密集  元素出現的頻率比較高時

思想:計數統計每個元素出現的次數(元素從小到大)先找到最小值和最大值 申請差值的計數器

快排:思想:找乙個值為中間值比其小的放左側比其大的放右側分成兩部分依次執行

方法:1,挖坑填補法 

定標準值

從前向後找比標準值大的向後放

從後向前找比標準值小的向前方

歸併排序 思想:將多個已經排好序的陣列進行排序

歸併排序的適用場合:資料量大  可以求出陣列中逆序對兒的個數

常用資料結構的適用場合

常用資料結構的適用場合 如果訪問元素的操作的效率十分重要,可以使用 array dynamic array hash table 如果插入 刪除操作的效率十分重要,可以使用linked list和hash table 如果查詢元素的操作效率十分重要,首選hash table,其次為red black...

hibernate的優缺點和適用場合

hibernate優點 1 物件化。人員以面相物件的思想來運算元據庫。hibernate支援許多物件導向的特性,如組合,繼承,多型等。2 更好的移植性.對於不同的資料庫,開發者只需要使用相同的資料操作即可.3 開發效率高。hibernate提供了大量的封裝 這也是它最大的缺點 很多資料操作以及關聯關...

hadoop的使用場合與不使用場合

1.在web中頁面的快速響應中不適合用hadoop 響應時間在ms級別 2.大量的小檔案處理不使用用hadoop 元資料較多,而且元資料是儲存在namenode中的,記憶體占用大 3.hdfs中的block 乙個block只是可以儲存乙個檔案 但是乙個檔案可以由多個塊組成,預設情況下乙個block有...