說說Python中常用的三種排序算法

上期我們聊了Python的查找算法,下面我們說一下Python的排序算法,排序算法即整理數據序列,使其按照一定順序排列的操作。Python最常用的排序算法主要有三種:冒泡排序、插入排序和快速排序。

首先說一下什麼是冒泡排序,重複走訪所有數據,比較每兩個相鄰的元素,如果次序錯誤,則交換;重複進行直到沒有相鄰數據需要交換為止,此時完成排序。這裡我們舉一個例子,假設班裡有10名學生,上體育課時老師要求大家按照身高從低到高排成一排,身高分別為:150,120,170,160,172,144,187,200,178,166。使用Python程序實現該過程,下面看代碼:

說說Python中常用的三種排序算法

冒泡排序_page_1

說說Python中常用的三種排序算法

冒泡排序_page_2

插入排序是指將數據插入到已經有序的數據中,從而得到新的有序數據。默認首元素自然有序,取出下一個元素,對已經排序的數據從後向前掃描:若有序數據大於取出數據,則該有序數據後移;若有序數據小於等於取出數據,則在該有序數據後插入取出數據如果所有的有序數據均大於取出數據,則在有序數據頭部插入取出數據。取出下一個未排序數據,重複上步驟,直到處理完所有數據為止,插入排序的特點是不交換隻移動,在時間複雜度上優於冒泡。

說說Python中常用的三種排序算法

插入排序_page_1

說說Python中常用的三種排序算法

插入排序_page_2

快速排序是指首先任意選取一個數據(通常我們選用第一個數)作為關鍵數據,然後將所有比它小的數據放在其前面,將所有比它大的數據放到其後面,這個過程稱為一趟快速排序。通過一趟排序將數據分為兩個部分,然後遞歸對該兩個部分重複進行快速排序,已達到所有數據有序。快速排序的特點是如果每次都能均勻分組則排序速度是最快的。

說說Python中常用的三種排序算法

快速排序_page_1

通過比較三種排序算法,快速排序是最快的排序算法,其次,就是插入排序,冒泡排序是最慢的,有興趣的讀者朋友可以比較一下以上三種排序算法的速度。受制於水平的有限,這裡基於Python這門語言將三種常用排序算法進行了簡單的對比。需要交流和切磋的讀者朋友,請在評論區積極留言,歡迎關注頭條號:杜哥說python。


分享到:


相關文章: