1。冒泡排序是将无序的数字排列成从小到大的有序组合:
过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程。
规律:
1。冒泡排序的趟数时固定的:n - 1
2。冒泡排序比较的次数时固定的:n * (n - 1)/2
3。冒泡排序交换的次数时不固定的:但是最大值为:n * (n - 1)/2
注意:n=数据个数,排序过程中需要临时变量存储要交换的数据
,
l=[688、888、711999、1、4、6] 因为我在范围(len (l) 1): j的范围(len (l) 1): 如果l [j]在l [j + 1): tmp=l [j] l l [j]=[j + 1) l [j + 1]=tmp 打印(l)
列表=(10,3、5、2、9)
过程,循环当前列表,将当前循环到的值与余下的每个数字相比较,如果比当前值小,就与当前值交换位置。
,
l=[688、888、711999、1、4、6] 因为我在范围(len (l) 1): j的范围(i + 1, len (l)): 如果l [j] & lt; l[我]: tmp=l[我] l l[我]=[j] l [j]=tmp 打印(l)
优化:每次找到最小值后不立即替换,而是等待本次循环结束再替换,减少了操作的次数,效率提高了
l=[688、888、711999、1、4、6] 因为我在范围(len (l) 1): Min=我 j的范围(i + 1, len (l)): 如果l (Min)比;l [j]: Min=j tmp=l(分钟) l (Min)=l[我] l[我]=tmp 打印(l)
插入排序(插入排序)的基本思想的是:将列表分为2部分,左边为排序好的部分,右边为未排序的部分,循环整个列表,每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。
,
数组=[9、8、7、6、5、4、3、2、1] 因为我在范围(len(数组)): current_val=array[我] current_position=我 虽然current_position祝辞0和数组(current_position-1)比;current_val: 数组[current_position]=[current_position-1]数组 current_position -=1 [current_position]=current_val数组 打印(数组)
以上所述是小编给大家介绍的python常用程序算法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!