摘要: Shell Sort 希尔排序是一种分组插入排序 首先取一个整数d1=n/2,n为列表长度,将元素分为d1个组,每组相邻量的元素之间距离为d1,在各组内进行直接插入排序 去第二个整数d2=d1/2,重复上述分组排序过程,直到di=1,即所有元素在同一组内进行直接插入排序 希尔排序每趟并不使某些元素有 阅读全文
posted @ 2025-03-12 17:44 Hua的阿鸡 阅读(22) 评论(0) 推荐(0)
摘要: Insert Sort 演示一下: # 有这样一个无序列表,我们运用插入排序的方法来给它做升序排序 [9,4,3,7,6,1,8,2,5] # 首先,我们把这个列表想像成一组牌,第一个的 9 是我们手上的(有序区),其余是要摸的(无序区),为了区分,在有序区于无序区之间搞一个分隔符 [9,'|', 阅读全文
posted @ 2025-03-06 20:54 Hua的阿鸡 阅读(11) 评论(0) 推荐(0)
摘要: Quick Sort 主要思想: 1、递归; 2、让元素去到自己该去的地方(左边都比它小,右边都比它大) 约定:首先归位第一个元素 将第一个元素提出并存储为temp; 设置left指向列表最左边,right指向列表最右侧,从列表右侧开始向左遍历,把每一个元素都与temp比较:如果比temp大,那么r 阅读全文
posted @ 2025-03-05 00:15 Hua的阿鸡 阅读(22) 评论(0) 推荐(0)
摘要: Select Sort 主要思路:将列表分为有序区与无序区;与冒泡排序一样,每一趟都会选出一个数放入有序区,所以会有n-1趟(n为列表长度);从无序区中找最小值,将其与无序区的第一个数交换位置,则第一个数所在位置划为有序区,以此类推,无序区一直缩减,直到第n-1趟,无序区只剩一个数,这个数即为最大值 阅读全文
posted @ 2025-03-04 23:55 Hua的阿鸡 阅读(44) 评论(0) 推荐(0)
摘要: Bubble Sort 列表每两个相邻的数,如果前面比后面大,则交换这两个数 一趟排序完成后,则无序区减少一个数,有序区增加一个数 关键:趟数、无序区范围 趟数:因为最后一个不用排,所以趟数为列表长度减一 每一趟都会在有序区放入一个元素,所以下标索引要控制在无序区内 import random de 阅读全文
posted @ 2025-03-04 23:53 Hua的阿鸡 阅读(31) 评论(0) 推荐(0)