链表插入排序、链表归并排序 1.链表 1.1链表的存储表示 1 2 3 4 5 6 7 //链表的存储表示 typedef int ElemType; typedef struct LNode { ElemType data; struct LNode *next; }LNode, *LinkLis ...
分类:
编程语言 时间:
2016-11-01 19:20:26
阅读次数:
347
插入排序分为:直接插入排序,二分插入排序(又称折半插入排序),链表插入排序,希尔排序(又称缩小增量排序)。属于稳定排序的一种(通俗地讲,就是两个相等的数不会交换位置)。在这里我具体讲直接插入排序和希尔排序。直接排序插入直接插入排序是由两层嵌套循环组成的。外..
分类:
编程语言 时间:
2016-05-22 18:40:12
阅读次数:
198
JAVA当中有以下几种常见排序算法:插入排序(直接插入排序、链表插入排序、分段/二分/折半插入排序、希尔排序/缩小增量排序)、冒泡排序、快速排序、简单选择排序、归并排序、二叉树排序、基数排序等。
(1)复杂度比较
表1 几种常见排序算法的复杂度
算法名称
平均情况
最好情况
最坏情况
辅助空间
直接...
分类:
编程语言 时间:
2016-05-18 19:48:41
阅读次数:
240
题目 用插入排序对链表排序 样例 Given 1->3->2->0->null, return 0->1->2->3->null C++代码 ListNode *insertionSortList(ListNode *head) { // write your code here if (!head ...
分类:
编程语言 时间:
2016-05-03 23:56:27
阅读次数:
482
/** * Definition for ListNode. * public class ListNode { * int val; * ListNode next; * ListNode(int val) { * this.val = val; * ...
分类:
编程语言 时间:
2016-01-21 23:58:14
阅读次数:
434
Sort a linked list using insertion sort.Subscribeto see which companies asked this question解法:设置3个指针:应插入位置的前一个节点first、当前处理节点third和其前一个节点second,设置辅助节点h...
分类:
编程语言 时间:
2015-11-16 14:08:07
阅读次数:
181
描述给链表的结点进行排序。比如给出 1->3->2->0->null ,排序后 0->1->2->3->null。 这里介绍链表的插入排序和归并排序。链表插入排序插入排序就是已经前面N?1N-1个结点有序的情况下,将第NN个结点分别跟前面的有序结点比较,使前NN个结点仍然有序。跟数组的插入排序有所不同的是,数组是从后面开始比较,由于链表只能从前到后,所以链表插入排序是从前面依次开始比较。最主要的思想...
分类:
编程语言 时间:
2015-08-27 00:33:05
阅读次数:
170
【147-Insertion Sort List(链表插入排序)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题 Sort a linked list using insertion sort.
题目大意 对一个单链表表进行插入排序
解题思路 使用一个指针p指向未排好序的链表的第一个结点,在排序好的部分中找到找第一个大于等于q的前驱结点,将p对应的结点插入到正确位...
分类:
编程语言 时间:
2015-08-20 06:49:36
阅读次数:
182
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
/*
* 单链表的插入排序, 插入排序是一种稳定排序
*/
class Solution7 {
public:
ListNode* insertionSortList(ListNod...
分类:
编程语言 时间:
2015-08-02 21:38:44
阅读次数:
169