博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
插入排序和堆排序
阅读量:6488 次
发布时间:2019-06-24

本文共 1673 字,大约阅读时间需要 5 分钟。

题目:https://www.patest.cn/contests/pat-a-practise/1098

1098. Insertion or Heap Sort (25)

照着学习了一遍精神的代码

1 #include 
2 #include
3 4 using namespace std; 5 #define MAXN 111 6 int origin[MAXN],tempOri[MAXN],changed[MAXN]; 7 int n; 8 bool isSame(int *A,int *B){ 9 for(int i=0;i<=n;i++)10 if(A[i]!=B[i])11 return false;12 return true;13 }14 15 bool showArray(int *A){16 for(int i=1;i<=n;i++){17 printf("%d",A[i]);18 if(i
tempOri[j]){40 j++;41 }42 if(tempOri[j]>tempOri[i]){43 swap(tempOri[j],tempOri[i]);44 i=j;45 j=i*2;46 }else{47 break;48 }49 }50 }51 52 void heapSort(){53 bool flag=false;54 for(int i=n/2;i>=1;i--){55 downAdjust(i,n);56 }57 for(int i=n;i>1;i--){58 if(i!=n&&isSame(tempOri,changed)){59 flag=true;60 }61 swap(tempOri[i],tempOri[1]);62 downAdjust(1,i-1);63 if(flag){64 showArray(tempOri);65 return;66 }67 }68 }69 70 int main()71 {72 scanf("%d",&n);73 for(int i=1;i<=n;i++){74 scanf("%d",&origin[i]);75 tempOri[i]=origin[i];76 }77 for(int i=1;i<=n;i++){78 scanf("%d",&changed[i]);79 }80 if(insertSort()){81 printf("Insertion Sort\n");82 showArray(tempOri);83 }else{84 printf("Heap Sort\n");85 for(int i=1;i<=n;i++){86 tempOri[i]=origin[i];87 }88 heapSort();89 }90 return 0;91 }

 

转载于:https://www.cnblogs.com/tianxia2s/p/6495714.html

你可能感兴趣的文章
JspContext对象与PageContext对象
查看>>
java中间==、equals和hashCode差额
查看>>
TextureView+SurfaceTexture+OpenGL ES来播放视频(一)
查看>>
才一年,H5的发展就成这样了......
查看>>
McBsp接口使用和概念
查看>>
关于WEB Service&WCF&WebApi实现身份验证之WCF篇(1)
查看>>
类是公共,它应该被命名为.java文件声明
查看>>
介绍一个超好用的HICHARTS扩展插件
查看>>
中断相关一【转】
查看>>
MonkeyImage API 实践全记录
查看>>
LeetCode - Subsets
查看>>
HDU 1425 sort 题解
查看>>
intellij idea使用
查看>>
可选链
查看>>
【Xamarin挖墙脚系列:典型的业务程序的结构搭建】
查看>>
Docker CPU 资源限制——CPU分片功能测试
查看>>
FP-Growth算法之频繁项集的挖掘(python)
查看>>
二叉树的非递归遍历
查看>>
基于Hibernate注解的解读
查看>>
ELK——安装 logstash 2.2.0、elasticsearch 2.2.0 和 Kibana 3.0
查看>>