随笔分类 -  算法

摘要:快速排序 快速排序 将列表中第一个元素设定为基准数字,赋值给mid变量,然后将整个列表中比基准小的数值放在基准的左侧,比基准大的数字放到基准的右侧,然后将基准数字左右两侧的序列在根据此方法进行排放。 定义两个指针,low指向最左侧,high指向最右侧 然后对最右侧指针进行向左移动,移动规则是:如果指 阅读全文
posted @ 2020-04-12 19:39 zz洲神在此 阅读(117) 评论(0) 推荐(0)
摘要:希尔排序 关键变量:增量gap gap:初始值为len(alist) // 2 1.表示分组的组数 2. 每一组数据之间的间隔 插入排序就是增量为1的希尔排序 阅读全文
posted @ 2020-04-12 19:33 zz洲神在此 阅读(68) 评论(0) 推荐(0)
摘要:插入排序 插入排序 思路: 需要将原始序列分成两部分:有序部分,无序部分 将无序部分中的元素逐一插入到有序部分中 注意:初始情况下,有序部分为乱序序列的第一个元素,无序部分为乱序序列的n 1个元素 乱序序列:[3,8,5,7,6] [3,,,,8,5,7,6]: 3就是初始的有序部分,8,5,7,6 阅读全文
posted @ 2020-04-12 19:31 zz洲神在此 阅读(124) 评论(0) 推荐(0)
摘要:选择排序 def pao1(alist): x = 1 while x alist[i+1]: 如果前面的元素大于后面的元素,交换两个元素的位置 alist[i],alist[i+1] = alist[i+1],alist[i]` 选择排序是遍历整个列表,设置一个index索引为0,每次用该列表的索 阅读全文
posted @ 2020-04-12 13:19 zz洲神在此 阅读(114) 评论(0) 推荐(0)
摘要:冒泡排序 通过对列表中的元素进行两两比较,数值大的交换位置,知道最后一个,依次比较,得出有序序列。 冒泡思路 发现上述代码已经可以将序列中的最大值放置到合适的位置,然后我们就可以将上述操作继续作用到n 1个元素对应的新序列,则就可以将n 1个元素对应的最大值放置到了n 1个元素的最后位置。 结论:发 阅读全文
posted @ 2020-04-12 13:18 zz洲神在此 阅读(113) 评论(0) 推荐(0)
摘要:二分查找 二分查找只可以作用在有序序列中。 循环low版 递归版 阅读全文
posted @ 2020-04-12 12:56 zz洲神在此 阅读(121) 评论(0) 推荐(0)