- 博客(6)
- 资源 (7)
- 收藏
- 关注
原创 各排序算法性能分析
插入排序:最坏时间始n^2 快速排序和插入排序的区别是:插入排序始将关键字插入已排序的子序列中,而快速排序始>对整个文件,把基准关键字放到正确的位置上。 快排最坏时间依然是n^2, 平均时间始nlgn。 在堆排序:的过程中只需一个辅助空间!所以空间 复杂度为 0(1) 堆排序的时间复杂度为 nlgn; 由于堆排序过程需要进行任意位置上记录的移动:; 待筛结点值存放于辅助单元中 和交
2014-03-19 14:02:22 485
原创 C++ 数组转化为单链表,双向链表的创建
typedef struct Student{ int data; struct Student*next; }node; int arr[]={3,4,9,1,5,2,8,0,6,7}; node*head=(node*)malloc(sizeof(node)); node* ptr; head->data=arr[0]; head->next=NU
2014-03-11 19:46:37 3276
原创 C++ 快速排序 递归实现
在各排序算法中,由C.A.R.Hoare提出的快速排序方法的平均时间性能最好,在插入排序中,根据已排序的字文件,把控制当前插入操作的关键字K放到正确的位置上。与插入排序不同的是,快速排序根据整个文件,把控制当前排序进程的基准关键字放到正确的位置上。在快速排序中,如果把关键字k防止在位置s(i)处,那么,当j ,而当j〉s(j)时,则有Kj>k(si),因此当把关键字放在S(i)处时,原来的一个文
2014-03-11 14:47:36 522
原创 C++ 归并排序 递归实现
////////////////////////////vs中可直接运行///////////////////////////////// #include "stdafx.h" #include using namespace std; ////////////////////归并两个已排序的表//////////////////// ///前一个表为start到mid 第二个表为mi
2014-03-11 11:17:43 825
原创 C++ 堆排序算法(大堆)
#include using namespace std; //对中的根元素从0开始 void adjustHeap(int list[],int root,int n) { int temproot=list[root]; int child=2*root+1; while(child { if(child { child++; }
2014-03-10 21:45:21 1764
原创 vector,list,deque,map,capacity和size的区别等容器总结
1 、我们不能对内置数组进行拷贝,但是可以对array进行拷贝: eg,inta[10]={1,2,3,4,,5,6}; int copy[10]=a //wrong array arr={1,2,3,4,5,6}; array arr1=arr //right
2014-03-07 20:12:35 1118
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人