插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。 示例 1: 输入: 4->2->1->3 输出: 1->2->3->4 示 ...
分类:
编程语言 时间:
2020-11-24 12:23:16
阅读次数:
8
前面分享了双指针移动实现插入排序,第一个指针pre的作用是为了插入数据节点,第二个指针prel作用是和待插入的数据节点进行比较,今天分享只用一个指针实现链表的插入排序。 需要注意的只有一点指针必须在比较的数据节点之前,这样才能实现交换内存地址,从而实现插入功能。 关于图,请大家看前面的双指针实现链表 ...
分类:
移动开发 时间:
2019-08-09 13:24:39
阅读次数:
117
Leetcode 147 思路总结 1.在头部搞一个哨兵dummy,处理头部插入的情况。最后返回哨兵的next即可。 2. 搞一个指针,从前往后走,依次比较该node与node.next的值,只要<=,往后走。一旦node.val>node.next.val,则停止在这个位置。此时需要为node.n ...
分类:
编程语言 时间:
2018-09-16 16:15:09
阅读次数:
160
用插入排序对链表进行排序。 详见:https://leetcode.com/problems/insertion-sort-list/description/ ...
分类:
编程语言 时间:
2018-04-06 15:26:14
阅读次数:
146
将一个单链表进行处理后,所得结果为一有序链表 Solution: 将原始链表逐个查询,插入新链表,在插入的同时对链表进行排序。时间复杂度O(n*n) ...
分类:
编程语言 时间:
2018-03-07 00:46:29
阅读次数:
216
插入排序包括:直接插入排序,二分插入排序(折半插入排序),链表插入排序,希尔排序。 今天介绍的是直接插入排序。 直接插入排序 在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 ...
分类:
编程语言 时间:
2017-10-16 13:33:52
阅读次数:
215
来源:https://leetcode.com/problems/insertion-sort-list Sort a linked list using insertion sort. 方法: 1. 使用一个preHead指向头节点,这样在将节点插入头节点前面时(即某个节点值比头节点小)不需要进行 ...
分类:
编程语言 时间:
2017-09-19 22:52:54
阅读次数:
153
Sort a linked list using insertion sort. 题意:使用插入排序排链表。 思路:所谓的插入排序法,可以理解为,从原链表中取结点,每次都从新的链表的开头开始遍历比较,在新链表中找到不小于当前节点的位置,然后将当前节点插入进去,依次重复这种过程,时间复杂度为O(n^2 ...
分类:
编程语言 时间:
2017-07-17 20:11:16
阅读次数:
150
Sort a linked list using insertion sort. PS:需要考虑left为head且只有一个数时,此时left->==NULL,若right<left则应更新left。 比较p->next->val与right->val以此来避免需要记录preNode ...
分类:
编程语言 时间:
2017-06-07 17:02:02
阅读次数:
134
用插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null 法1:刚开始没看到是插入排序 用的冒泡法 /** * Definition of ListNode * class ListNode { * public: * int val ...
分类:
编程语言 时间:
2016-11-26 14:05:33
阅读次数:
147