会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Loading
LinZeLiang
命运善嫉
博客园
首页
新随笔
管理
上一页
1
···
11
12
13
14
15
16
17
18
下一页
2020年10月10日
计数排序
摘要: 计数排序 计数排序适用于最大值和最小值产别不大的数组,如果说最小为0,最大为1亿,那么就需要创建容量为1亿个元素的数组,时间复杂度就很高了 把数组元素作为临时数组的下标,统计每个下表出现的次数,最后再从索引为0开始依次顺序遍历该临时数组,次数为n就输出n次,就排序好了 为什么要max - min +
阅读全文
posted @ 2020-10-10 00:23 linzeliang
阅读(88)
评论(0)
推荐(1)
2020年10月9日
堆排序
摘要: 堆排序 堆分为大顶堆和小顶堆,大顶堆就是父节点的值大于子节点的值(小顶堆反之)。大顶堆是升序,小顶堆是降序。 堆排序就是先构建一个顶堆,然后将堆顶第一个元素与最后一个元素交换,此时最大元素就跑到末尾去了,然后再整理一下堆进行下一次交换,直到剩下一个元素堆排序就完成了 不稳定排序、空间复杂度是O(1)
阅读全文
posted @ 2020-10-09 00:13 linzeliang
阅读(117)
评论(0)
推荐(0)
2020年10月8日
希尔排序
摘要: 希尔排序 希尔排序就是插入排序的升级版,普通的插入排序只是用于小规模数组或者比较有序的数组 希尔排序交换不相邻的元素以对数组的局部进行排序,根本思想还是插入排序 希尔排序是让间隔step的元素有序,刚开始是h = len / 2,然后 h = h / 2 / 2,一直这样缩小下去,直到为1,此时数组
阅读全文
posted @ 2020-10-08 00:14 linzeliang
阅读(130)
评论(0)
推荐(1)
2020年10月7日
归并排序两种方法(递归和非递归)
摘要: 归并排序的两种方法 递归(自顶向下) 将一个大的无序的数组分成两个,然后拿出其中一个再分为两个···一直这样下取,直到最后剩下一个,那么这只包含一个元素的数组就是有序的了,然后将两个这样的数组通过merge方法有序的合并,一级一级,直到最开始的两个合并了就排序完了 先实现一个merge用来将两个有序
阅读全文
posted @ 2020-10-07 23:54 linzeliang
阅读(1280)
评论(0)
推荐(0)
快速排序的两种方法
摘要: 第一种(左右指针法) 我们取中间值作为基准值,又两个索引分别从左端和右端向中间靠拢,比较大小,将小于基准值的归到左边,大于基准值的归到右边,这时l与r可能都指向基准值的位置,但是下一步两个索引自增,l大于r(但是要保证不超出边界即left与right),这是l作为右半部分的新的递归的left,rig
阅读全文
posted @ 2020-10-07 12:03 linzeliang
阅读(550)
评论(0)
推荐(0)
冒泡排序、选择排序和插入排序
摘要: 冒泡排序 时间复杂度O(n2)、空间复杂度O(1)、稳定、原地排序 冒泡排序就是比较与自己相邻的下一个数,如果下一个数比这个大,就交换,否则就进行下一个比较了,经过一轮,大的就会排到最后面去了,循环a.length - 1次即可,注意的是,每次比较只需要比较到倒数第二个,因为最后一个没有下一个与它进
阅读全文
posted @ 2020-10-07 00:17 linzeliang
阅读(171)
评论(0)
推荐(2)
2020年10月3日
力扣 - 430. 扁平化多级双向链表
摘要: 题目 多级双向链表中,除了指向下一个节点和前一个节点指针之外,它还有一个子链表指针,可能指向单独的双向链表。这些子列表也可能会有一个或多个自己的子项,依此类推,生成多级数据结构,如下面的示例所示。 给你位于列表第一级的头节点,请你扁平化列表,使所有结点出现在单级双链表中。 示例 1: 输入:head
阅读全文
posted @ 2020-10-03 15:45 linzeliang
阅读(140)
评论(0)
推荐(0)
力扣 - 24. 两两交换链表中的节点
摘要: 题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例: 给定 1->2->3->4, 你应该返回 2->1->4->3. 思路1 链表可以创建一个头结点来辅助解题,再创建一个指针指向头结点(该指针是把链表连起来用的),
阅读全文
posted @ 2020-10-03 10:13 linzeliang
阅读(154)
评论(0)
推荐(0)
力扣 - 445. 两数相加 II
摘要: 题目 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。 你可以假设除了数字 0 之外,这两个数字都不会以零开头。 如果输入链表不能修改该如何处理?换句话说,你不能对列表中的节点进行翻转。 示例: 输入:(7 -> 2
阅读全文
posted @ 2020-10-03 01:52 linzeliang
阅读(130)
评论(0)
推荐(0)
力扣 - 21. 合并两个有序链表
摘要: 题目 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路1 循环实现,创建一个头结点,再创建一个排序指针指向头结点。指向较小的结点,再比较后两个结点的大小,把指
阅读全文
posted @ 2020-10-03 00:21 linzeliang
阅读(108)
评论(0)
推荐(0)
上一页
1
···
11
12
13
14
15
16
17
18
下一页
公告