#include<iostream>
using namespace std;
int Init(int a[]);
int main()
{
int a[5]={};
Init(a);
//选择排序
for(int i=0;i<5;i++)
{
for(int j=i;j<5;j++)
{
if(a[j]<a[i])
{
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<5;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
//冒泡排序
Init(a);
for(int i=5;i>=0;i--)
{
for(int j=0;j<i;j++)
{
if(a[j+1]<a[j])
{
int temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<5;i++)
{
cout<<a[i]<<" ";
}
cout<<endl;
return 0;
}
int Init(int a[])
{
a[0]=12;
a[1]=34;
a[2]=21;
a[3]=4;
a[4]=9;
}
堆排序是一种树形选择排序。是对直接选择排序的有效改进。
基本思想
堆的定义如下:具有n个元素的序列(k1,k2,…,kn),当且仅当满足
时称为堆。