查找和排序的一点浅显认识
以前老是混淆各種排序的方法,對此我也感到十分苦惱,去網上搜索各種排序教程,結果收獲頗微,就在期末考試時,我還擔心會有排序的題(事實證明我多慮了),不過作為算法的基本功,不扎實遲早會出大問題,今天把查找和排序通了一遍,遇見排序我再也不怕不怕啦!!
查找分為:
順序查找和二分查找(折半查找)
順序查找就是一個一個比對,這個有點像掃描病毒的原理,比如你手機下載的時候不小心附帶了病毒,那么手機上的殺毒軟就把其特性和所謂的云病毒庫進行比對,一旦比對成功,就會刪除該病毒,所以說,一旦存在新特性的病毒,什么殺毒都是靠不住的。順序查找也是這個原理,從頭到尾,直到找到需要的數據。
二分查找比順序查找快的多,不過有條件,就是查找的數據必須按一定順序排列好,思想是,先將要查找的數據和中間的那個數據進行比對,如果比中間的大,那么就在中間的右面查找,如果比中間的小,那么就在中間的小面查找,等于說每次查找都排除一半的數據,所以時間要節省很多。
排序分為:
插入排序
比如有N個數,那么就把后N-1個數和第一個數比較,如果大于就交換,實際上就是把后邊的數和前面已經排好的比對,看看插在哪里合適。
選擇排序
有N個數,把N個數里面最小的那個造出來放在首位,然后再找N-1個數中最小的那個放在N-1個數的首位,每次排序數都會少一個,直到拍到最后為止。
冒泡排序
寫到這,還依然想到費老講洗衣粉沫子的事,實際上就是那回事,大的泡泡上去,小的泡泡下來,對于N個數,讓第一個和第二個比較,如果第一個大于第二個就讓他們交換,然后讓第二個和第三個比較,如果第二個大于第三個就讓他們交換,這樣一來,上面的都是大泡泡,下面都是小泡泡了。
哈希排序
也叫歸并排序,希爾排序,是把N個數分成多個小數組,用同樣的方法把小數組分成小小數組,把小小數組排好,最后一合并,就是按順序的了。由于數的交換跳度較大,是目前較快的排序法。
快速排序
光看名字就知道這種方法不會慢,實際上它是目前公認的最快的方法,他的思想是把一個數作為基準數,數組中比基準數小的放左邊,大的放右邊,然后用同樣的方法排左右兩個數列,這種方法比哈希排序的跳度更大。
?
?
小結:插入排序實質:先排后找
??????選擇排序實質:先找后排
冒泡排序實質:邊排邊找
哈希和快速:分治后鑲嵌冒泡
總結
以上是生活随笔為你收集整理的查找和排序的一点浅显认识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: openjudge基础题3计算书费
- 下一篇: 成都大熊猫繁育研究基地离哪个高铁站近