data structure
告别婴儿肥
在读大学生
展开
-
排序之插入类排序
1.直接插入排序 //思想:从无到有,数组一直保持有序递增,新来的元素P与数值R从末到首比较,若P小于数组数值,则将数组值后移,为P的插入预留空间 //R从R[1]开始储存,最坏情况下时间R中元素递增,时间复杂度为O(n^2),空间复杂度为O(1) void InsertSort(int R[],int n) { int i,j; int te...原创 2018-09-17 13:36:16 · 101 阅读 · 0 评论 -
排序之交换类排序
1.冒泡排序 //冒泡排序 void BubbleSort(int R[],int n) { int i,j; int flag;//在一趟循环过程中为发生交换,则代表已经有序 for(i=1;i<=n;i++){ flag=1; for(int j=2;j<=n;j++){ ...原创 2018-09-17 14:29:36 · 113 阅读 · 0 评论 -
排序之选择类排序
1.简单选择排序 //简单选择排序 void SelectSort(int R[],int n) { int i,j,cur; for(i=1;i<=n;i++){ cur=i; for(j=i+1;j<=n;j++){ if(R[j]<...原创 2018-09-18 18:35:19 · 128 阅读 · 0 评论 -
排序之二路归并排序
分治思想 //归并 void Merge(int R[],int left,int right) { int mid=(left+right)/2; int *p=(int *) malloc(sizeof(int)*(right-left+1)); int i=left,j=mid+1; int k=0; ...原创 2018-09-18 20:38:55 · 432 阅读 · 0 评论 -
排序之基数排序
//定义最大数的位数 int len=3; int superpalindromesInRange(string L, string R) { int n[11]={0,49,38,65,97,76,13,27,49,55,4}; RadixSort(n,11); for(int c:n) cout<&...原创 2018-09-19 12:53:30 · 144 阅读 · 0 评论 -
11. 盛最多水的容器
个人理解:为很会想到以下时间复杂度为O(n)的思路呢? 由题意可知此题意在比较(i-j)*Height的大小。 本题使i,j分别从两边向中间靠拢,保持了length的单调递减,在length递减的条件下,要比之前的面积大,只有提升height,于是将原本较小的height舍弃,向中间靠拢,看是否有更大的面积。 于是有疑问:你如何确定答案就在收缩的(i,j)对中呢? 是因为,在舍弃较小的hei...原创 2018-10-07 14:56:05 · 115 阅读 · 0 评论