使用python實現冒泡排序和快速排序

來源:互聯網
上載者:User

標籤:style   oop   回調   def   bubble   lis   span   ret   交換   

 1 def bubble(arr): 2     """冒泡排序""" 3     loop = len(arr) - 1 4     if loop > 0: 5         for l in range(loop): 6             for i in range(loop - l): 7                 if arr[i] > arr[i + 1]: 8                     arr[i], arr[i + 1] = arr[i + 1], arr[i] 9     return arr10 11 12 def split_array(nums, left, right):  # 返回調整後基準數的位置13     key = nums[left]  # nums[left]就是第一個坑14     while left < right:15         # right下標位置開始,向左邊遍曆,尋找不大於基準數的元素16         while left < right and nums[right] >= key:17             right -= 118         if left < right:  # 找到小於准基數key的元素,然後交換nums[left],nums[right]19             nums[left], nums[right] = nums[right], nums[left]20         else:  # left〉=right 跳出迴圈21             break22         # left下標位置開始,向右邊遍曆,尋找不小於基準數的元素23         while left < right and nums[left] < key:24             left += 125         if left < right:  # 找到比基準數大的元素,然後交換nums[left],nums[right]26             nums[right], nums[left] = nums[left], nums[right]27         else:  # left〉=right 跳出迴圈28             break29     nums[left] = key30     return left  # 此時left==right 所以返回right也是可以的31 32 33 def quick_sort(nums, left, right):34     if left < right:35         key_index = split_array(nums, left, right)36         quick_sort(nums, left, key_index - 1)37         quick_sort(nums, key_index + 1, right)38 39 40 if __name__ == "__main__":41     from random import randint42     nums = list(randint(10, 99) for i in range(100))43     print(nums)44     quick_sort(nums, 0, len(nums) - 1)45     print(nums)

快速排序的理解可以參見http://blog.csdn.net/morewindows/article/details/6684558 寫的很好

使用python實現冒泡排序和快速排序

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.