1. 排序 1.1 冒泡排序 1.2 选择排序 1.3 插入排序 1.4 希尔排序 1.5 快速排序 1.6 归并排序 2. 搜索 1. 排序 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定顺序进行排列的一种算法。 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等 ...
分类:
编程语言 时间:
2020-04-09 00:41:32
阅读次数:
85
链表的排序有很多方式,这里记录一下归并排序,关键点2个: 归并排序的过程和快慢指针法找中间结点,直接上代码。 class Solution { public: ListNode* sortList(ListNode* head) { if (!head || !head->next) return ...
分类:
编程语言 时间:
2020-04-06 17:33:04
阅读次数:
92
前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:韩忠康 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://t.cn/A6Zvjdun 算法 归并排序(merge-sort),典型的分治策 ...
分类:
编程语言 时间:
2020-04-06 15:32:27
阅读次数:
68
摸鱼了一个星期没更,现在补回来。上星期基本上就是邻接ddl(周一),套板子或者用现成sort修修补补过的, 今天是周六,是时候检验一下是不是真的完全会了,顺便解决一些当时没有想通的问题 先说归并排序 归并的思路,我觉得应该是很容易理解的,这里就不赘述,唯一难的就是把这个—再归并再排序—的模板自己写出 ...
分类:
编程语言 时间:
2020-04-05 11:29:35
阅读次数:
73
归并排序 基本思想 将待排序元素分成大小大致相同的 2 个子集合; 分别对 2 个子集合进行排序; 最终将排好序的子集合合并成为所要求的排好序的集合。 最常使用的归并排序方法是2 路归并排序。 复杂度和稳定性 时间复杂度:O(nlog2n) 空间复杂度:O(n) 稳定性:稳定 代码 ...
分类:
编程语言 时间:
2020-04-05 00:14:45
阅读次数:
90
1. Merge Sort / 归并排序 /* Divide and conquer * 将一个数组中的两个相邻有序区间合并成一个 * * 参数说明: * A -- 包含两个有序区间的数组 * lo -- 第1个有序区间的起始地址。 * mi -- 第1个有序区间的结束地址。也是第2个有序区间的起始 ...
分类:
编程语言 时间:
2020-04-04 23:03:58
阅读次数:
135
感悟:两小时,单项选择15,问答8,编程3,论述5(大学规划,为什么选这个岗位等等,也占分) 单选:计算机网络偏多,然后就是一些基本知识点了: 好喜欢考这东西啊,下面答案是6,因为末尾有个'\0',我做错了。。。。如果c[10]的话就是10 归并排序最坏情况(多分析一点最坏情况,因为最好情况都考烂了 ...
分类:
Web程序 时间:
2020-04-02 22:29:05
阅读次数:
354
快速排序 优点: 好写 局部性好 空间复杂度平均为O(logn) 缺点: 不稳定 朴素地选择第一个元素或者最后一个元素容易退化 选择中间的元素不容易退化,但是对特定的序列仍然有可能退化 优势在于局部性原理,相邻几次调整的区间都几乎涉及同一片内存,所以比归并排序以及堆排序更优。 挺好记的。为什么要写 ...
分类:
编程语言 时间:
2020-04-01 09:16:10
阅读次数:
70
算法思想:首先把一个数组中的元素,按照某一方法,先拆分了之后,按照一定的顺序各自排列,然后再归并到一起,使得归并后依然是有一定顺序的 。 算法可自顶向下拆分数组也可以自底向上拆分数组合并 自底向上的归并排序有对索引依赖少的优势,对于链表来说比较适合 //自底向上的归并排序 template<type ...
分类:
编程语言 时间:
2020-03-29 13:07:53
阅读次数:
146
1.插入排序 先用一个temp保存当前待插入的元素,然后用一个while循环移动p,循环条件中要判断p =0,如果待插入的元素小于有序区的所有元素,p会移动的负数,让它0时再循环一次,出来的时候即可插入到对应的位置。 2.选择排序 3.堆排序 如果写实际下标那么就用i2+1[l]=》h=mid 1; ...
分类:
编程语言 时间:
2020-03-28 16:18:47
阅读次数:
70