激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 快速排序的算法思想及Python版快速排序的實現示例

快速排序的算法思想及Python版快速排序的實現示例

2020-08-31 11:27cangmean Python

快速排序算法來源于分治法的思想策略,這里我們將來為大家簡單解析一下快速排序的算法思想及Python版快速排序的實現示例:

快速排序是C.R.A.Hoare于1962年提出的一種劃分交換排序。它采用了一種分治的策略,通常稱其為分治法(Divide-and-ConquerMethod)。

1.分治法的基本思想

分治法的基本思想是:將原問題分解為若干個規模更小但結構與原問題相似的子問題。遞歸地解這些子問題,然后將這些子問題的解組合為原問題的解。

2.快速排序的基本思想

設當前待排序的無序區為R[low..high],利用分治法可將快速排序的基本思想描述為:

(1)分解:

在R[low..high]中任選一個記錄作為基準(Pivot),以此基準將當前無序區劃分為左、右兩個較小的子區間R[low..pivotpos-1)和R[pivotpos+1..high],并使左邊子區間中所有記錄的關鍵字均小于等于基準記錄(不妨記為pivot)的關鍵字pivot.key,右邊的子區間中所有記錄的關鍵字均大于等于pivot.key,而基準記錄pivot則位于正確的位置(pivotpos)上,它無須參加后續的排序。

注意:

劃分的關鍵是要求出基準記錄所在的位置pivotpos。劃分的結果可以簡單地表示為(注意pivot=R[pivotpos]):

R[low..pivotpos-1].keys≤R[pivotpos].key≤R[pivotpos+1..high].keys

其中low≤pivotpos≤high。

(2)求解:

通過遞歸調用快速排序對左、右子區間R[low..pivotpos-1]和R[pivotpos+1..high]快速排序。

(3)組合:

因為當"求解"步驟中的兩個遞歸調用結束時,其左、右兩個子區間已有序。對快速排序而言,"組合"步驟無須做什么,可看作是空操作。

Python實現

原理: 先用初始數據, 然后對這個數據進行排序使左邊的數據小于
該數據,右邊的大于該數據,然后用遞歸的方法對兩邊的數據進行依次排序。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/env python
#_*_coding:utf-8_*_
 
def rand(x):
 import random
 if x < 3:
  x = 5
 if x > 1000:
  print "big data"
  return []
 l = range(1, x)
 li = []
 while l:
  r = random.randint(0, len(l)-1)
  li.append(l.pop(r))
 return li
 
def quicksort(l, low, hight):
 key = l[low]
 while low < hight:
  while key <= l[hight] and low < hight:
   hight -= 1
  l[low], l[hight] = l[hight], l[low]
 
  while key >= l[low] and low < hight:
   low += 1
  l[low], l[hight] = l[hight], l[low]
 
 l[hight] = key
 return hight
 
def m_sort(l, low, hight):
 if low >= hgiht:
  return
 
 index = quicksort(l, low, hight)
 m_sort(l, low, index)
 m_sort(l, index+1, hight)
 
def main():
 l = rand(1500)
 m_sort(l, 0, len(l)-1)
 print l
 
if __name__ == '__main__':
 main()

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人做爽爽爽爽免费国产软件 | 亚洲一二区精品 | 羞羞视频免费入口网站 | 高潮娇喘嗯啊~文字 | 在线成人一区二区 | 久久tv免费国产高清 | 久久成人免费观看 | 又黄又爽免费无遮挡在线观看 | 日韩欧美电影在线观看 | 黄色av网站免费看 | 久久17| 亚洲影院在线 | 亚洲va久久久噜噜噜久久男同 | 日韩激情一区二区三区 | 国产资源在线播放 | 亚洲欧美aⅴ | 性欧美一区二区 | jizzzxxxxhd | 久久区二区 | 黄网站免费入口 | 国产精品一区二区视频 | 国产乱淫av一区二区三区 | 国产成人综合在线观看 | 亚洲视频在线视频 | 国产九色在线播放九色 | 黄色毛片视频在线观看 | 欧美一级做性受免费大片免费 | 欧美成人免费一区二区三区 | 最新中文字幕日本 | 成人国产高清 | 国产精品久久久久久久久久了 | 国产成人自拍av | 欧日一级片 | 他也色在线视频 | 1314av| 国产午夜亚洲精品午夜鲁丝片 | wwwxxx免费视频 | 精品国产一区二区三区四区在线 | 免费一区区三区四区 | av在线一区二区三区 | 51色视频 |