Problem:
Sort a linked list in O(n log n)
time using constant space complexity.
解题思路:
首先,时间复杂度能达到O(nlgn)的排序算法,常见的有3种:堆排序、归并排序和快速排序,
而对于链表,用堆排序显然不太可能,所以,我们可用归并或者是快排.由于合并...
分类:
其他好文 时间:
2014-08-12 00:45:13
阅读次数:
217
1. 堆堆:n个元素序列{k1,k2,...,ki,...,kn},当且仅当满足下列关系时称之为堆:(ki = k2i,ki >= k2i+1), (i = 1,2,3,4,...,n/2)若将和此次序列对应的一维数组(即以一维数组作此序列的存储结构)看成是一个完全二叉树,则堆的含义表明,完全二叉树...
分类:
其他好文 时间:
2014-08-11 17:05:42
阅读次数:
253
基础知识: 排序:通过计算机手段将一组随机无序的数列变成有序的数列。常用排序算法有很多,主要有如下的几种: 包括插入排序,冒泡排序,选择排序,堆排序,归并排序,计数排序,基数排序,桶排序,快速排序等。 插入排序,堆排序,选择排序,归并排序和快速排序,冒泡排序都是比较排序,它们通过对数组中的元素...
分类:
其他好文 时间:
2014-08-11 14:45:42
阅读次数:
282
今天去面试了一家公司,做电子商务类的网站的,公司的老板应该比较有能量,可以同时拿下若干项目,技术负责人给提了几个问题:记不清顺序了.net 构析函数的作用泛型的主要作用及应用方面结构与类的区别冒泡排序的实现,快速排序与堆排序的内容Session的存储方式Cache的作用SQL Server 索引的类...
分类:
Web程序 时间:
2014-08-11 14:35:52
阅读次数:
240
1 /************************************************************************* 2 > File Name: HeapSort.cpp 3 > Author: zhoukang 4 > Mail: z...
分类:
编程语言 时间:
2014-08-11 11:55:42
阅读次数:
168
堆排序与高速排序,归并排序一样都是时间复杂度为O(N*logN)的几种常见排序方法。学习堆排序前,先解说下什么是数据结构中的二叉堆。二叉堆的定义二叉堆是全然二叉树或者是近似全然二叉树。二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)不论什么一个子节点的键值。2.每一个结点的左子树和右...
分类:
其他好文 时间:
2014-08-10 23:54:20
阅读次数:
289
原文:http://blog.csdn.net/t12x3456/article/details/7430700各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. ...
分类:
编程语言 时间:
2014-08-10 21:10:51
阅读次数:
429
(冒泡,选择,插入,希尔,快速,归并,堆排)周末加班学习C++,打算用C++写七大经典排序代码。之前写好的C实现代码debug后运行良好。之前的mysortlib.c中函数声明如下,接口完全是一样的。void _bubsort(int arr[], int len);void _bubsort_(i...
分类:
其他好文 时间:
2014-08-10 18:16:10
阅读次数:
198
堆排序的时间复杂度是O(nlogn),下面上代码
public class HeapSort {
public void adjustHeap(int[] in, int index, int length) {
int leftcIndex = index * 2 + 1;
int rightcIndex = index * 2 + 2;
int bigest = index;...
分类:
其他好文 时间:
2014-08-08 16:04:16
阅读次数:
210
排序算法是非常常见的面试笔试问题,考查的一个人的基本功,本文将一些排序做了C++的实现,就当是做个学习总结吧。1、快速排序 快速排序的中心是填坑法,取一个数(这里选取第一个数)作为基准数temp,从队尾开始寻找第一个比基准数小的数a[j],交换a[j]和temp,然后队首开始查找第一个比temp大....
分类:
编程语言 时间:
2014-08-07 03:00:18
阅读次数:
245