排序
文章平均质量分 72
richard_飞飞
天空中没有翅膀的痕迹,但我已经飞过
展开
-
第二章 算法入门 合并排序
在第二章中难的算法不多,接下来我会把原创 2014-05-11 12:55:34 · 985 阅读 · 0 评论 -
计数排序
第一、任意一个比较排序算法在最好情况下的时间复杂度也是O(nlogN); 第二、计数排序 假设n个输入元素的每一个都是介于0到k之间的整数,计数排序可用,需要临时存储空间O(K),时间复杂度是O(n). #include using namespace std; void countingSort(int *A,int len,int max) { if(A==NULL || len<原创 2014-05-14 22:57:02 · 783 阅读 · 0 评论 -
第七章 快速排序
快速排序最坏情况下时间复杂度是O(n*n),但是它平均时间复杂度是O(N*logn),并且常数因子很小,可实现就地排序,所以被作为内排序的常用排序方法. #include using namespace std; void swap(int &i,int &j) { int temp=i; i=j; j=temp; } int partition(int *vector原创 2014-05-14 00:23:27 · 951 阅读 · 0 评论 -
算法导论第六章 堆排序
建堆的时间复杂度是O(n),堆排序的时间复杂度是O(NLogN),具体算法如下所示: #include using namespace std; void swap(int &i,int &j) { int temp=i; i=j; j=temp; } void shiftDown(int *A, int start,int len) { int temp=A[原创 2014-05-13 00:03:30 · 1092 阅读 · 0 评论 -
逆序对
设A[1…n]是一个包含n个不同数的数组。如果在iA[j],则(i,j)就称为A中的一个逆序对(inversion)【《算法导论》2-4】 现给出一个数列,求该数列中的逆序对(逆序对 ) 利用归并排序的方法我们给出如下算法:// // main.cpp // CpushTest // // Created by Ellen on 14-5-11. // Copyright (c原创 2014-05-11 21:57:40 · 836 阅读 · 0 评论