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...