使用堆排序对一组随机数进行排序: 同时可以与冒泡排序比较排序时间
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
/* 数组个数 */
#define ARRAY_SIZE 56
/*控制是否打印数组*/
#define IS_PRINT 1
/* 用随机数填写数组 */
void fillArrayWithRand(int iarray[], int num)
{
int i = 0;
/* 如果不设置随机种子那么每次产生的随机数都是一样的 */
srand((int)time(0));
/* 产生Number个随机数,不要第0个 */
for (i = 1; i <= num; ++i)
{
iarray[i] = (rand() % 0xff); /* 产生255之内的随机数 */
}
}
/* 冒泡排序 */
void paoPaoSort(int iarray[], int num)
{
int i = 0;
int j = 0;
int itmp = 0;
for (i = 1; i < num; i++)
{
for (j = 1; j <= num - i; j++)
{
if (iarray[j] > iarray[j+1])
{
itmp = iarray[j];
iarray[j] = iarray[j+1];
iarray[j+1] = itmp;
}
}
}
}
/*对 堆进行排序*/
void HeapAdjust(int iarray[], int i, int num)
{
int lnode = 2 * i; /* 左节点 */
int rnode = 2 * i + 1; /* 右节点 */
int m