- 博客(4)
- 收藏
- 关注
原创 堆排序(基于python)
一.原理:这里面运用了二叉树的知识----自己应该知道吧。就是建立一个堆,每个节点只链接两个子节点,通过不断对每一个节点(堆)排序,直到列表排序成为一个初级有序的堆,后对这个堆经行处理完成整个列表的有序 二.代码实现:---------(升序) (1).堆的建立:分为大小堆,这里是升序,所以采用大堆----------(每个节点比两个子节点都大为大堆,反之。。。。) (2).调整排序:从上到下,通过堆顶节点比较子节点,大向上,直到堆成为大堆,看代码。 (3).堆整理为列表:通过不断.
2022-03-24 16:24:29
709
原创 归并排序(基于python)
一. 原理:先通过拆分列表,直到列表拆分为n个只有1~2元素的子列表。例如:[1,0,5,8,2,9,7]--------[1,0,5]和[8,2,9,7]----------[1,0],[5],[8,2],[9,7],后在对子列表排序----[0,1][5][2,8][7,9],再次合并------[0,1,5][2,7,8,9]---------[0,1,2,5,7,8,9]。完成整个排序过程。 tips:可以理解对列表进行logn次排序,先前2个和后2个排序,在前4和后4排序。。。。。 二. 代码
2022-03-24 16:03:46
1197
原创 快速排序(基于python)
小菜学习快速后,做出以下总结,本文的原理讲解是基于排列升序列表 一.原理:采用递归和列表左右数数值的移动,来完成整个列表的排序。简单来说,就是随机找一个列表元素tmp(一般默认为list[0]),将tmp插入列表合适的位置,使tmp大于等于tmp左边所有列表元素,tmp小于等于tmp右边所有列表元素。(简单点,,就是列表左边都比tmp小,列表右边都比tmp大)[#1] 对于这个排序的实现: (1).首先选取tmp=list[0](默认),这时可以认为list[0]为空, (2).从列表-1位置向0位
2022-03-13 00:07:22
546
1
原创 关于三排序(冒泡,选择,插入)理解(基于python)
学习了一段时间后的python后,本人小菜有了一些了解,在这里分享以下自己的看法, 一.冒泡排序 (1).原理:从列表的中的第一个元素开始遍历,对i和i+1经行比较(类似气泡的上浮),(这里以升序为例子),如果第i个元素>第i+1个元素,交换i与i+1元素,直到将列表中的最大值移动到列表最后一位。后对第二大值进行移动,直到完成排序。 (2).时间复杂度:由于每一次排序只能排列一个选定值,所对于一个含有N个元素的列表来说,最多进行N-1次排序。所以估计时间复杂度为O()。 (3).优点缺点:简单
2022-03-11 11:44:38
1722
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人