到目前为止, 我们已经学习到了插入排序, 冒泡排序, 选择排序(selection)。 这些排序算法都是comparision based sorting algorithms(即涉及到元素大小的比较来决定元素的先后顺序)。 而且算法的时间复杂度上均为O(n^2)。但是comparision based 的排序算法远非这几个算法。 而且可以通过利用其它的一些手段(例如divide and conq...
分类:
编程语言 时间:
2014-07-11 08:29:25
阅读次数:
441
Sort a linked list in O(n log n) time using constant space complexity.merge sort、heap sort和quick sort都是O(nlgn),但是mergesort和quicksort都是递归的,不是constant s...
分类:
其他好文 时间:
2014-07-06 21:07:41
阅读次数:
210
最小的k个数 代码(C)本文地址: http://blog.csdn.net/caroline_wendy题目: 输入n个整数, 找出其中的最小k个数.使用快速排序(Quick Sort)的方法求解, 把索引值(index)指向前k个数.代码:/*
* main.cpp
*
* Created on: 2014.6.12
* Author: Spike
*/
/*eclip...
分类:
其他好文 时间:
2014-06-30 18:16:34
阅读次数:
204
An iterative way of writing quick sort:#include #include #include using namespace std;void quickSort(int A[], int n) { stack> stk; stk.push(make_pair(...
分类:
其他好文 时间:
2014-06-29 20:16:45
阅读次数:
179
[1.1]使用库语言排序算法本文地址: http://blog.csdn.net/caroline_wendy如果不缺少内存, 可以直接使用库的排序算法.使用库语言的排序程序:C语言性能最好的算法是快速排序(quick sort).C++性能最好的是集合(set)的排序算法.C语言代码:/*
* main.cpp
*
* Created on: 2014.6.12
* Auth...
分类:
其他好文 时间:
2014-06-18 00:40:02
阅读次数:
269
归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort),但是归并排序是稳定排序, 而.....
分类:
其他好文 时间:
2014-06-17 23:47:38
阅读次数:
299
归并排序(merging Sort) 详解 及 代码本文地址: http://blog.csdn.net/caroline_wendy归并排序(merging sort): 包含2-路归并排序, 把数组拆分成两段, 使用递归, 将两个有序表合成一个新的有序表.归并排序(merge sort)的时间复杂度是O(nlogn), 实际效果不如快速排序(quick sort)和堆排序(heap sort)...
分类:
其他好文 时间:
2014-06-17 16:19:56
阅读次数:
232
快速排序(Quick Sort)也是一种交换排序,它在排序中采取了分治策略。
快速排序的主要思想是:
从待排序列中选取一元素作为轴值(也叫主元)。
将序列中的剩余元素以该轴值为基准,分为左右两部分。左部分元素不大于轴值,右部分元素不小于轴值。轴值最终位于两部分的分割处。
对左右两部分重复进行这样的分割,直至无可分割。...
分类:
其他好文 时间:
2014-06-15 15:28:14
阅读次数:
301
原文:浅谈算法和数据结构: 四
快速排序上篇文章介绍了时间复杂度为O(nlgn)的合并排序,本篇文章介绍时间复杂度同样为O(nlgn)但是排序速度比合并排序更快的快速排序(Quick
Sort)。快速排序是20世纪科技领域的十大算法之一 ,他由C. A. R. Hoare于1960年提出的一种划分交...
分类:
其他好文 时间:
2014-06-07 20:15:43
阅读次数:
362
An iterative way of writing quick sort:
#include
#include
#include
using namespace std;
void quickSort(int A[], int n) {
stack> stk;
stk.push(make_pair(0, n-1));
while (!stk.empty()) {
pair ...
分类:
其他好文 时间:
2014-06-03 00:16:43
阅读次数:
357