python初级(302) 7 列表(排序练习)
一、 选择排序
[3, 10, 2, 7, 16]
第1次:[3, 10, 2, 7, 16]找出2, 放入新数组中[2]
第2次:[3, 10, 7, 16]找出3, 追加到新数组中[2, 3]
第3次:[10, 7, 16]找出7,追加到新数组中[2, 3, 7]
第4次:[10, 16]找出10,追加到新数组中[2, 3, 7, 10]
第5次:[16]找出16, 追加到新数组中[2, 3, 7, 10, 16]
排序完成
关键点:找到最小值
观察,查找最小数一直持续到原先的列表长度为0时为止
代码:
def get_min_item(arr): min_num = arr[0] for i in range(1, len(arr)): if arr[i] < min_num: min_num = arr[i] return min_num def sort1(arr): arr2 = list() while len(arr): num = get_min_item(arr) arr2.append(num) arr.remove(num) return arr2 sort1([3, 9, 7, 1, 5])
二、冒泡排序
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
代码:
def sort2(arr): length = len(arr) while length >= 2: for i in range(length-1): if arr[i] > arr[i + 1]: arr[i], arr[i+1] = arr[i+1], arr[i] length -= 1 print(arr) sort2([10, 3, -3, 6, 7, 9, 12, 7, 6, -5])
相关推荐
坚持是一种品质 2020-11-16
zhaobig 2020-11-16
文山羊 2020-10-31
kikaylee 2020-10-31
oXiaoChong 2020-10-30
PYTandFA 2020-09-15
CloudStrife0 2020-08-23
hang0 2020-08-16
lzujiangge 2020-08-16
RocNg 2020-08-15
xiesheng 2020-08-06
Tristahong 2020-08-05
georgeandgeorge 2020-08-03
elizabethxxy 2020-07-27
flycony 2020-07-05
柠檬班 2020-07-04
magicandy 2020-07-04
fanhuasijin 2020-06-27