常見的排序演算法分析(一)

老哥吃炫邁嗎發表於2020-12-21

常見的排序演算法分析(一)


說來慚愧,自2015~16年在大學校園裡做了些小專案後,邊從來沒關注過排序演算法。恰逢17年中興成研所招收實習生,一把進入之後也再沒想過關注這些排序演算法。恰巧上週有校招新人面試,聽聞新人各種排序演算法精通,為了不被鄙視特意去學了下常見的排序演算法。哭唧唧,之前連大部分演算法名字都不記得了,只記得一個氣泡排序和一些分治的概念,某些個演算法著實燒了會腦子。趁著我寫第一篇博文的時候,第二篇也來湊個數。


由於只看了,插入,選擇,希爾,快速,歸併,大小堆 這些排序,那就分享下這些演算法的個人理解吧!希望對路過的各位有所幫助,如有錯誤歡迎指正(各位輕噴,畢竟幹活乾的早,演算法並不精通)!

所有排序均考慮升序排序

簡單的排序演算法----選擇排序

所謂選擇排序,即選出滿足條件的元素,然後進行排序。這種排序,講究 滿足條件,這種排序方式應該是最符合人的思想的排序方式吧。
例如:我要升序排列一堆無序資料,那我只需要將最小的放在第一個,次小的放在第二個,以此類推即可。
原理:
在這裡插入圖片描述

簡單的排序演算法----插入排序

所謂插入排序,即依次將每個位的元素,依次向前插入到各自的位置上,當各個元素均在自己的位置上時,則所有資料就從無序變成了有序。這種排序,講究 每個元素找準自己的位置
例如:我要升序排列一堆無序資料,那我只需要將第二個元素向第一個元素比較,若是比第一個元素小,則將第二個元素插入到第一個元素前。第三個元素也想第一個元素的方向,向最相鄰的元素(第二個)進行比較,若是比第二個元素小,則插入到第二個元素前,並繼續向前一個元素(第一個)比較,如果比前一個小則插入到前一個元素前面。依次按照這種操作,將每個元素插入到各自的位置。
原理:
在這裡插入圖片描述

相關文章