python實現快排 氣泡排序

2022-06-11 06:21:10 字數 850 閱讀 9613

1、快排

"""

快排:從一堆雜亂的資料中挑選乙個基準值,將這些數字和基準值一一比較,大的放基準值的右邊,小的放左邊

實現思路:定義乙個函式,挑選列表的首個數字作為基準值,其他數字比基準值小的數字生成列表,同理,其他數字和基準值大的數字生成另乙個列表,再遞迴快排這兩個列表

"""def quick_sort(nums):

if len(nums) < 2:

return nums

else:

base = nums[0]

left = [ i for i in nums[1:] if i base]

return quick_sort[left] + [base] + quick_sort[right]

nums = [5, 88, 35, 1, -8, 52, 552, 103254, 956, 235, 154, 22]

print(quick_sort(nums))

輸出:[-8, 1, 5, 22, 35, 52, 88, 154, 235, 552, 956, 103254]

2、冒泡

"""

冒泡:從左向右,兩兩比較,如果左邊大於右邊,則交換位置

"""def bubble_sort(arr):

length = len(arr)

for i in range(length):

for j in range(length - i - 1):

if arr[j] > arr[j + 1]:

arr[j], arr[j + 1] = arr[j + 1], arr[j]

return arr

JS實現氣泡排序和快排

冒泡的核心思想 每一輪確定乙個最大的數放到最右邊。就是雙重for迴圈遍歷,進行兩兩比較。核心思想 每一輪比較,把乙個數歸位 function bubblesort arr,arrlength 注意 外層迴圈的條件 i arrlength 1.這個裡面沒有 因為,最後乙個數不需要再迴圈確定位置,其他數...

C 實現各種排序 快排 插排 冒泡

1 插入排序 插入排序 主要思想 將陣列中的第乙個數認為是有序排列,剩下的n 1個數與第乙個數比較,再進行排序 有兩層迴圈,第一層控制排序的趟數,第二層控制每一趟比較的個數 include using namespace std int main for int i 0 i 10 i cin a i...

氣泡排序和快排

1.氣泡排序 氣泡排序要點 1 兩層迴圈,外層迴圈控制走訪數列重複進行的次數,內層迴圈進行資料的比較 交換,是資料 上浮 2 內層迴圈是相鄰的資料進行比較。var bubblesort function arr console.log arr 1,1,2,3,4,6,7,8 bubblesort 1...