python初级(302) 7 列表(排序练习)
Posted 永远的麦田
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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])
以上是关于python初级(302) 7 列表(排序练习)的主要内容,如果未能解决你的问题,请参考以下文章