HDU 1040 As Easy As A+B(堆排序)
是升序
所以先建大堆
可以向下調整
然後再進行逐個換位排序
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<vector>
using namespace std;
#define maxn 10010
int heap[maxn],n;
void downAdjust(int low,int high)
{
int i=low;
int j=i*2;
while (j<=high)
{
if(j+1<=high&&heap[j+1]>heap[j])
{
j=j+1;
}
if(heap[j]>heap[i])
{
swap(heap[j], heap[i]);
i=j;
j=i*2;
}
else
{
break;
}
}
}
void createHeap()
{
for(int i=n/2;i>=1;i--)
{
downAdjust(i, n);
}
}
void heapSort()
{
createHeap();
for(int i=n;i>1;i--)
{
swap(heap[i], heap[1]);
downAdjust(1, i-1);
}
for(int i=1;i<=n-1;i++)
{
printf("%d ",heap[i]);
}
printf("%d\n",heap[n]);
}
int main()
{
int t;
scanf("%d",&t);
while (t--)
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&heap[i]);
}
heapSort();
}
return 0;
}
相關文章
- hdu 1753 Java 高精度處理 大明A+BJava
- HDU4565 So Easy! (矩陣)矩陣
- HDU 4565 So Easy!(矩陣快速冪)矩陣
- HDU 2033 : 人見人愛A+B (C語言)C語言
- HDU 4565 So Easy!(公式化簡+矩陣)公式矩陣
- MURF1040CT-ASEMI無人機專用MURF1040CT無人機
- MURF1040CT-ASEMI快恢復二極體MURF1040CT
- 看懂堆排序——堆與堆排序(三)排序
- 堆排序排序
- MySQL ERROR 1040: Too many connectionsMySqlError
- [Algorithm] 1. A+B ProblemGo
- js堆排序JS排序
- [JAVA]堆排序Java排序
- P1040 加分二叉樹二叉樹
- A+B 演算法問題演算法
- 堆排序詳解排序
- python 堆排序Python排序
- 堆排序 Heap Sort排序
- 堆排序(C++)排序C++
- HeapSort 堆排序排序
- 【筆記】堆排序筆記排序
- 實現堆排序排序
- 簡單堆排序排序
- Python入門:A+B問題Python
- 字串魔法(easy)字串
- ACM A problem is easyACM
- 【BUUCTF】easy calc
- 【BUUCTF】Easy JavaJava
- js 實現堆排序JS排序
- 堆與堆排序(一)排序
- 堆排序(php實現)排序PHP
- 堆排序演算法排序演算法
- 堆操作與堆排序排序
- 解決Mysql錯誤[1040]Too many connectionsMySql
- PAT答案(D進位制的A+B)
- A+B for Input-Output Practice (IV) (sdut oj)
- 【構造共軛函式+矩陣快速冪】HDU 4565 So Easy! (2013 長沙賽區邀請賽)函式矩陣
- 堆排序(實現c++)排序C++