中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python中5個常見的排序算法分別是什么

發布時間:2020-11-09 11:29:42 來源:億速云 閱讀:207 作者:小新 欄目:編程語言

這篇文章主要介紹了python中5個常見的排序算法分別是什么,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

1、插入排序:每步將一個待排序的記錄,按其關鍵碼值的大小插入前面已經排序的文件中適當位置上,直到全部插入完為止。

代碼如下:

#L=[5,2,3,1,6,9]
# def insert_sort(list):
# leng=len(list);//求list長度
# for i in range(1,leng):
# temp=list[i];//設置哨兵
# j=i;
# while(j>0 and list[j-1]>temp):
# list[j]=list[j-1];//大的元素后移
# j=j-1;
# list[j]=temp;//遇到比哨兵小的元素,將其設置為哨兵
# return list;
# print(insert_sort(L))

2、冒泡排序:比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。對每一對相鄰元素做同樣的工作,從開始第一對到

 結尾的最后一對。在這一點,最后的元素應該會是最大的數。針對所有的元素重復以上的步驟,除了最后一個。持續每次對越來

越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。

代碼如下:

# def bubble_sort(list):
# leng=len(list);
# for i in range(0,leng)://控制趟數
# flag=True
# for j in range(1,leng-i):
# if list[j-1]>list[j]:
# flag=False;
# list[j-1],list[j]=list[j],list[j-1];//交換這兩個數
# if flag:
# break
# return list;
# L=[9,5,6,8,4,2]
# print(bubble_sort(L))

3、選擇排序:它的工作原理是每一次從待排序的數據元素中選出最小(或最大)的一個元素,存放在序列的起始位置,直到全

部待排序的數據元素排完。 選擇排序是不穩定的排序方法(比如序列[5, 5, 3]第一次就將第一個[5]與[3]交換,導致第一個5挪動到第二個5后面)。

代碼如下:

# def select_sort(list):
# leng=len(list)
# for i in range(0,leng):
# min=i //設置哨兵,假設第一個元素是最小的
# for j in range(i+1,leng):
# if list[j]<list[i]:
# min=j //開始尋找比哨兵小的元素。如果小則將重新設置哨兵位置
# if min!=i:
# list[i],list[min]=list[min],list[i]#交換這兩個數
# return list
# L=[-4,1,2,5,3,-2]

4、快速排序:它的基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的

所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

代碼如下:

# def partition(list,low,high)://劃分算法
# key=list[low]
# while(low<high):
# while(low<high and list[high]>=key):high=high-1
# if low<high:
# list[low]=list[high]
# low=low+1
# while(low<high and list[low]<=key):low=low+1
# if low<high:
# list[high]=list[low]
# high=high-1
# list[low]=key
# return low
#
# def quick_sort(list,low,high)://快速排序算法
# if low<high:
# pos=partition(list,low,high)
# quick_sort(list,low,pos-1)
# quick_sort(list,pos+1,high)
# return list
# L=[45,12,-32,65,28,9,-75,34]
# print(quick_sort(L,0,len(L)-1))

5、堆排序:堆排序(Heapsort)是指利用堆積樹(堆)這種數據結構所設計的一種排序算法,它是選擇排序的一種

代碼如下:

#堆排序
# def HeapAdjust(list,pos,len)://調整堆算法
# lchild=2*pos+1
# rchild=2*pos+2
# min=pos
# if pos<(len-1)/2:
# if lchild<len and list[lchild]<list[min]:
# min=lchild;
# if rchild<len and list[rchild]<list[min]:
# min=rchild;
# if min!=pos:
# list[pos],list[min]=list[pos],list[min]
# HeapAdjust(list,min,len)
# return list
#
# def BuildHeap(list,len)://建堆算法
# i=len/2-1
# while(i>=0):
# HeapAdjust(list,i,len)
# i=i-1
# return list
#
# def Heap_sort(list,len)://堆排序算法
# BuildHeap(list,len)
# while(len):
# list[0],list[len-1]=list[len-1],list[0]
# len=len-1
# HeapAdjust(list,len,0)
# return list
#
# L=[45,12,-32,65,28,9,-75,34]
# print(Heap_sort(L,len(L)))

感謝你能夠認真閱讀完這篇文章,希望小編分享python中5個常見的排序算法分別是什么內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文昌市| 姜堰市| 黄冈市| 独山县| 蒙城县| 阜宁县| 昭通市| 巴彦县| 潞西市| 西丰县| 大厂| 葫芦岛市| 阿拉尔市| 临海市| 上林县| 山丹县| 三河市| 祁东县| 元朗区| 杭锦后旗| 贺州市| 武功县| 堆龙德庆县| 甘洛县| 岗巴县| 钟祥市| 天台县| 湾仔区| 高台县| 祥云县| 漳平市| 巴楚县| 洪湖市| 资讯| 陇南市| 清丰县| 沙河市| 紫金县| 普兰店市| 桂东县| 板桥市|