- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 堆排序
#include using namespace std; void Max_heapify(int arry[],int n,int i) //以i为根的树调整为大根堆 { int l=2*i+1; int r=2*i+2; int largest,tmp; if(larry[i]) largest=l; else largest=i; if(rarry[largest])
2013-09-27 14:50:41 400
原创 逆序对的个数
对于数组A[1...n],若有iA[j],则对偶(i,j)称为A的一个逆序对。求数组中逆序对个数,很简单的思路是每个数和后面的数比较,这样需要(n^2)的时间,如果采用归并排序的思想最坏情况下需要O(nlgn)。 1.分解A[low...mid]和A[mid+1...high] 2.求解 3.合并,数组A[low...mid]和A[mid+1...high]分别都是有序的,设置两个指针,i指
2013-09-25 21:53:09 704
原创 归并排序
#include using namespace std; const max=100000000; void Merge(int arry[],int low,int mid,int high) { int n1,n2; int L[100],R[100]; n1=mid-low+1; n2=high-mid; for(int i=0;i<n1;i++) L[i]=arry[lo
2013-09-25 20:58:59 413
原创 插入排序
Insert_sort(int arry[],int n) { int i,key; for(int j=1;j { key=A[j]; i=j-1; while(i>=0&&A[i]>key) //找到key的插入位置 { A[i+1]=A[i]; i=i-1; } A[i+1]=key; } }
2013-09-25 20:06:26 435
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人