python冒泡排序法
冒泡法排序
原理:一次比较相邻的两个元素,如果前一个元素比第二个元素大,则交换位置;没一趟将一个数归位。
例如:列表nums = [3,5,2,1,9],从小到大相邻两位一一比较
第一趟:
- 第一次比较:3,5,2,1,9
- 第二次比较:3,2,5,1,9
- 第三次比较:3,2,1,5,9
- 第四次比较:3,2,1,5,9
第二趟:
- 第一次比较:2,3,1,5,9
- 第二次比较:2,1,3,5,9
- 第三次比较:2,1,3,5,9
- 第四次比较:2,1,3,5,9
第三趟:
- 第一次比较:1,2,3,5,9
- 第二次比较:1,2,3,5,9
- 第三次比较:1,2,3,5,9
- 第四次比较:1,2,3,5,9
......
代码如下:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 # author: dcl 5 # date: 2018/1/30 6 7 # 冒泡法排序 8 9 10 def bubbleSort(nums): 11 for i in range(len(nums) - 1): 12 for j in range(len(nums) - i - 1): 13 if nums[j] > nums[j + 1]: 14 nums[j], nums[j + 1] = nums[j + 1], nums[j] 15 16 return nums 17 18 19 nums = [3, 5, 2, 1, 9] 20 print(bubbleSort(nums))
浙公网安备 33010602011771号