堆排序
2008-12-28 14:31
197 查看
堆排序
#include<iostream.h>void Sift(int A[],int n,int i)
{
int x=A[i];
int j;
j=2*i+1;
while(j<=n-1)
{
if(j<n-1&&A[j]<A[j+1])
j++;
if(x<A[j]){
A[i]=A[j];
i=j;j=2*i+1;
}
else
break;
}
A[i]=x;
}
void HeapSort(int A[],int n)
{
int x;
int i;
for(i=n/2-1;i>=0;i--)
Sift(A,n,i);
for(i=1;i<=n-1;i++)
{
x=A[0];A[0]=A[n-i];A[n-i]=x;
Sift(A,n-i,0);
}
}
void main()
{
int a[]={99,12,32,14,25,98,24,44};
HeapSort(a,8);
for(int i=0;i<8;i++)
cout<<a[i]<<" ";
cout<<endl;
}
if (flag==1 || flag==2){
text_pagination(1);
}
else{
article.innerHTML=Text;
}
相关文章推荐
- [Unity][Heap sort]用Unity动态演示堆排序的过程(How Heap Sort Works)
- 排序——堆排序
- Go语言用堆排序的方法进行一千万个int随机数排序.
- java实现堆排序
- 堆排序
- 堆排序(Java实现)
- 算法复习之堆排序
- 堆排序
- 四、堆排序
- 序列——堆排序-大根堆(堆大顶)
- 堆排序(算法导论)
- 堆排序
- 快排与堆排序、归并排序的比较
- 堆与堆排序
- 各种常见的排序,冒泡排序,选择排序,插入排序,希尔排序,堆排序,快速排序,基数排序,桶排序
- 经典排序算法 -----冒泡排序,插入排序,快速排序,归并排序,堆排序
- 建堆,以及对堆排序
- HeapSort 堆排序 基于伪代码实现
- 数据结构学习笔记5-寻找最小的k个数(选择排序和堆排序)
- 堆排序