Python快速排序

2021-07-14 03:37:15 字數 727 閱讀 9376

思路很簡單,就是等分著排序,左邊一堆小於中間的數,右邊一堆大於中間的資料,遞迴等分每一次的左右兩邊,直到只有2個數或1個數沒法分為止,但是在寫的過程中遇到了python的一些問題

總結一下:

1.python中break只能使用在while,for迴圈之中,在if中直接使用會報錯,那就意味著我sort函式進來的第乙個判斷是個擺設…但是好歹也有提醒作用吧

這點需要注意

2.python中對檔案流的操作,每次一旦讀取完(也就是read()方法一執行,file物件就會指向檔案尾),這時候我們如果要再一次讀取其內容,那必須先讓file物件指向開始的地方(也就是0),使用seek(0),表示指定指向0位置

比如**圖中如果沒有myfile.seek(0),那之後的str2會得到返回的空物件

3.可以使用myfile.tell()來輸出當前檔案指到了什麼位置

4.str字串型別的split方法拆分原字串,自動將每個空白字元(換行和空格….等)拆分掉,得到乙個list物件(鍊錶)

最後得到的結果:

python快速排序排序 python快速排序

import random def rand n for i in range n yield random.randint 0,1000 建立乙個隨機數列表 def createlist n lists for i in rand n return lists 挖坑法快速排序 def quick ...

排序 快速排序 Python

快速排序 快排 是非常常用的排序方法,在技術面試中出現頻率也特別高。它主要採用交換和分治的策略進行排序。是不穩定排序。步驟 1 在序列中選乙個元素作為劃分的基準元素 pivot 2 將所有不大於pivot的數字放在pivot的前面,大於pivot的數字放在pivot的後面 3 以pivot為界,對前...

python快速排序

coding utf 8 class quicksort def sort self,list,left,right 開始位置小於 位置 if left 取到中間的乙個下標值 s list left right 2 i 0 i left j 下標結束 j right while true 從開始位置...