日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PAT1098【插入排序+堆排序】

發(fā)布時間:2024/8/26 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PAT1098【插入排序+堆排序】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

簡單插入排序:

簡單插入排序的核心思想:

把一條這么個難看的序列默認(rèn)分為兩個排好序的和未排好序的兩個部分;

所以一開始排好序的只有一個a[0](好看的只有一個),難看的有N(數(shù)組長度)-1個a[1,n-1];

然后呢,你就要順序下來,把一個個難看的幾個人插到好看的那一堆里去,好看的越來越多,難看的越來越少,最后變成了真的好看的;
代碼:

void InsertionSort(int a[],int n) //a[]是要處理的數(shù)組,n是數(shù)組長度 {int i,j;int temp;//默認(rèn)兩部分,一部分好看,一部分難看;//把難看的解決就好了 for(i=1;i<=n-1;i++) //有n-1個難看的{temp=a[i];for(j=i-1;j>=0;j--) {if(a[j]<temp) //這個難看孩子在好看的位置,就是前面那個比他小的時候break;a[j+1]=a[j];}a[j+1]=temp; //比他小的好看孩子的后面一個啊;就算最小的還比他大,j傳出來會變成-1,j+1就是0了 } }

堆排序:


堆排序的思想:

利用最大堆(最小堆)輸出堆頂元素,即最大值(或最小值),將剩下的元素重新生成最大堆(或者最小堆),一直重復(fù)這個過程,直到所有的元素輸出。

我們來學(xué)習(xí)一個開辟O(1)空間就能辦事的堆排序。

其實很簡單,就是把最大堆(或者最小堆)與它最后一個元素交換,然后重新建立最大堆。

代碼主要做的事情就是:“向下過濾”,所以我們把這部分代碼拿出來。

void Adjust(int a[], int i, int n) { int c,temp; for(temp=a[i];(2*i+1)<n;i=c) { c=2*i+1; if(c!=n-1&&a[c+1]>a[c]) c=c+1; if(temp<a[c]) a[i]=a[c]; else break; } a[i] = temp; }

然后開始寫堆排序的步驟代碼:

void Build(int a[],int n) {for(int i=(n-1)/2;i>=0;i--)//從有兒子的最后一個結(jié)點開始向下過濾 Adjust(a,i,n); }
然后就是一個交換:

void Exchange(int a[],int n) {for(i = n - 1; i > 0; i--){temp = a[0];a[0] = a[i];a[i] = temp;//交換Adjust(a, 0, i);//將交換的新a[0]向下過濾一下得到最大堆} }

題目代碼:

#include<bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN=1e2+10;bool Check(int a[],int b[],int n) {for(int i=0;i < n;i++)if(a[i]!=b[i]) return false;return true; }//第 i 個元素向下過濾; void Adjust(int a[], int i, int n) {int c,temp;for(temp=a[i];(2*i+1)<n;i=c){c=2*i+1;if(c!=n-1&&a[c+1]>a[c])c=c+1;if(temp<a[c]) a[i]=a[c];else break;}a[i] = temp; }bool HeapSort(int a[], int n,int b[]) {int c,i,temp;//建立最大堆 for(i = (n-1)/2; i >= 0; i--) //從含有兒子節(jié)點的根開始。 Adjust(a, i, n);//然后依次交換。 for(i = n - 1; i > 0; i--){temp = a[0];a[0] = a[i];a[i] = temp;Adjust(a, 0, i);if(Check(a,b,n)){i--;temp = a[0];a[0] = a[i];a[i] = temp;Adjust(a, 0, i); puts("Heap Sort");for(int k=0;k<n;k++){if(k) printf(" ");printf("%d",a[k]);}return true;}}return false; }bool InsertionSort(int a[],int b[],int n) {int temp,i,j;for(i=1;i<=n-1;i++){temp=a[i];for(j=i-1;j>=0;j--){if(a[j]<temp) break;a[j+1]=a[j];}a[j+1]=temp;if(Check(a,b,n)){i++; temp=a[i];for(j=i-1;j>=0;j--){if(a[j]<temp) break;a[j+1]=a[j];}a[j+1]=temp;puts("Insertion Sort");for(int k=0;k<n;k++){if(k) printf(" ");printf("%d",a[k]);}return true;}}return false; }int main() {int n;int a[MAXN],b[MAXN],c[MAXN];scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d",&a[i]);c[i]=a[i];}for(int i=0;i<n;i++)scanf("%d",&b[i]);if(InsertionSort(a,b,n))return 0;if(HeapSort(c,n,b))return 0; }


轉(zhuǎn)載于:https://www.cnblogs.com/keyboarder-zsq/p/6777372.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的PAT1098【插入排序+堆排序】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产黄色在线 | 亚洲精品视频在线播放 | 国产大屁股喷水视频在线观看 | 四虎成人永久免费视频 | 一区二区三区美女 | 欧美另类高清videos的特点 | 精品久久国产视频 | 天堂网ww | 成年人三级网站 | 久久综合伊人77777蜜臀 | 丰满少妇在线观看资源站 | 欧美在线导航 | 日韩av色 | 午夜一区不卡 | 天天色av | 国产精品视频一区二区三区在3 | 麻豆国产在线视频 | 婷婷国产| 成人免费午夜 | 亚洲精品日日夜夜 | 亚洲精品久久久乳夜夜欧美 | 久久麻豆视频 | 最新不卡av| 久久最新免费视频 | 国产精品v欧美精品v日韩精品 | 亚洲国产一区在线观看 | 午夜精品一二三区 | 99黄色| 经典三级在线视频 | 国产精品一区二区三区免费 | 狠狠干很很操 | 黑人毛片网站 | 日韩国产在线一区 | 成人一区二区在线观看 | 欧美三级午夜理伦三级中视频 | 日本成人在线一区 | 手机看片1024欧美 | 自拍第二页 | 黄页网站免费在线观看 | 欧美韩一区二区 | 黄色三级免费观看 | 变态 另类 国产 亚洲 | 国产 日韩 欧美在线 | 国内成人精品 | 91精品影视 | 午夜国产在线 | 丰满圆润老女人hd | 三级影片在线播放 | 88av在线| 欧美精品久久久久久久久老牛影院 | 欧洲成人在线观看 | 涩涩五月天 | www.香蕉视频 | 国产69精品久久久久777 | av小片| 亚洲精品无 | 日韩国产欧美一区二区三区 | 日本肉体xxxⅹ裸体交 | 人人人爽| 日韩精品在线看 | 香蕉综合视频 | 尤物在线精品 | 亚洲激情图片区 | 欧美一区二区福利 | 叶爱在线| 国产欧美一区二区三区白浆喷水 | 久久免费视频播放 | 成人在线国产精品 | 欧洲一二三区 | 人人爱人人澡 | 色999在线观看 | 一起操在线观看 | 欧美偷拍一区二区 | 黄色a级免费 | 久久久成人免费 | 无码av免费毛片一区二区 | 午夜精品极品粉嫩国产尤物 | 亚洲老老头同性老头交j | 人人草人人干 | av大片免费看 | 国产黄色大片免费看 | 久久精品中文闷骚内射 | 日韩第1页| 九九久久国产 | 91福利在线免费观看 | 国产毛片av| 国产精品美女在线观看 | 99re热这里只有精品视频 | 丁香六月婷婷激情 | 午夜在线小视频 | 成人毛片基地 | 日日干日日插 | 国产精品久久久久久白浆 | 97福利社| 麻豆精品一区二区 | 亚欧美在线观看 | 国产福利一区二区视频 | 日韩精品人妻一区 | 中文字幕久久av |