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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PTA 09-排序3 Insertion or Heap Sort (25分)

發布時間:2025/3/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PTA 09-排序3 Insertion or Heap Sort (25分) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目地址

https://pta.patest.cn/pta/test/16/exam/4/question/676

?

5-14?Insertion or Heap Sort???(25分)

According to Wikipedia:

Insertion sort?iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one element from the input data, finds the location it belongs within the sorted list, and inserts it there. It repeats until no input elements remain.

Heap sort?divides its input into a sorted and an unsorted region, and it iteratively shrinks the unsorted region by extracting the largest element and moving that to the sorted region. it involves the use of a heap data structure rather than a linear-time search to find the maximum.

Now given the initial sequence of integers, together with a sequence which is a result of several iterations of some sorting method, can you tell which sorting method we are using?

Input Specification:

Each input file contains one test case. For each case, the first line gives a positive integer?NN?(\le 100100). Then in the next line,?NN?integers are given as the initial sequence. The last line contains the partially sorted sequence of the?NN?numbers. It is assumed that the target sequence is always ascending. All the numbers in a line are separated by a space.

Output Specification:

For each test case, print in the first line either "Insertion Sort" or "Heap Sort" to indicate the method used to obtain the partial result. Then run this method for one more iteration and output in the second line the resuling sequence. It is guaranteed that the answer is unique for each test case. All the numbers in a line must be separated by a space, and there must be no extra space at the end of the line.

Sample Input 1:

10 3 1 2 8 7 5 9 4 6 0 1 2 3 7 8 5 9 4 6 0

Sample Output 1:

Insertion Sort 1 2 3 5 7 8 9 4 6 0

Sample Input 2:

10 3 1 2 8 7 5 9 4 6 0 6 4 5 1 0 3 2 7 8 9

Sample Output 2:

Heap Sort 5 4 3 1 0 2 6 7 8 9


/* 評測結果 時間 結果 得分 題目 編譯器 用時(ms) 內存(MB) 用戶 2017-07-06 18:04 答案正確 25 5-14 gcc 14 1 測試點結果 測試點 結果 得分/滿分 用時(ms) 內存(MB) 測試點1 答案正確 7/7 1 1 測試點2 答案正確 6/6 2 1 測試點3 答案正確 2/2 1 1 測試點4 答案正確 2/2 2 1 測試點5 答案正確 4/4 14 1 測試點6 答案正確 4/4 14 1 */ #include<stdio.h> #define MAXN 100 int A[MAXN],B[MAXN],tmp[MAXN]; int gNextTurnToPrint=0; int gPrinted=0; int gSortType=0; void swap(int *a,int *b) {int temp;temp=*a;*a=*b;*b=temp; } void DBG_printarray(int N) //調試用函數 {int d;for(d=0;d<N;d++){printf("%d ",A[d]);}printf("\n"); } void CheckMethod(int N) {if(gPrinted)return;int i;if (gNextTurnToPrint==1){if(gSortType==0)printf("Insertion Sort\n");elseprintf("Heap Sort\n");for(i=0;i<N;i++){printf("%d",A[i]);if(i!=N-1)printf(" ");}gNextTurnToPrint=0;gPrinted=1;return;}for (i=0;i<N;i++){if(A[i]!=B[i])return;}gNextTurnToPrint=1; }void InsertionSort(int a[],int left ,int right,int N) {int i,j,temp;for(i=left;i<right;i++){temp=a[i+1];for(j=i+1;j>left;j--){if(temp<a[j-1])a[j]=a[j-1];else break;}a[j]=temp;CheckMethod(N);} }void PrecDown(int a[],int x,int N) {int temp=a[x];int parent,child;parent=x;for(child=2*parent+1; child<= N ;child=child*2+1){if(child!=N){if(a[child+1]>a[child])child++;}if(temp<a[child]){a[parent]=a[child];parent=child;}else break;}a[parent]=temp; // DBG_printarray(N+1); }void HeapSort(int a[],int N) {//建大頂堆然后把首元素后移int i,ptrRight=N-1,temp,d;for(i=(ptrRight-1)/2;i>=0;i--){PrecDown(a,i,ptrRight);}for(i=ptrRight;i>0;i--){temp=a[i];a[i]=a[0];a[0]=temp;PrecDown(a,0,i-1);CheckMethod(N);} }int main() {int i,N;scanf("%d",&N);for(i=0;i<N;i++){scanf("%d",&A[i]);tmp[i]=A[i];}for(i=0;i<N;i++){scanf("%d",&B[i]);}InsertionSort(A,0,N-1,N);if(!gPrinted){for(i=0;i<N;i++){A[i]=tmp[i];}gSortType=1;HeapSort(A,N);}}

  

轉載于:https://www.cnblogs.com/gk2017/p/7141134.html

總結

以上是生活随笔為你收集整理的PTA 09-排序3 Insertion or Heap Sort (25分)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。