排序程序小结(冒泡排序、并归排序、插入排序等).doc
文本预览下载声明
程序在VC6.0下运行测试通过,包含三个文件:sort_all.h排序类的定义;
sort_real.cpp排序类成员函数定义;sort_main.h运行的主函数。
包括冒泡排序、并归排序、插入排序、选择排序、快速排序、堆排序、Shell排序
——————sort_all.h文件——————————————————
#include iostream
using namespace std;
/****************************************/
class sort_all
{
public:
void swap_i(int a, int b);
void disp_array(int *array, int len);
void disp_num();
void sort_maopao(int *array, int len);
void sort_quick(int *array, int start, int end);
void sort_merge(int * array, int start, int end);
void sort_heap(int *array, int len);
void sort_select(int *array, int len);
void sort_insert(int *array, int len);
void sort_shell(int *array, int len);
};
棗棗棗棗棗棗棗棗棗棗棗棗棗棗棗棗棗棗棗
棗棗棗棗sortespace std;
/*********_real.cpp文件——————————————————————
#include sort_all.h
void sort_all::disp_array(int *array, int len)
{
for(int i=0; ilen; i++)
{
cout array[i] ;
}
cout endl;
}
void sort_all::swap_i(int a, int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void sort_all::disp_num()
{
cout ---冒泡排序,输入1--- \n;
cout ---并归排序,输入2--- \n;
cout ---插入排序,输入3--- \n;
cout ---选择排序,输入4--- \n;
cout ---快速排序,输入5--- \n;
cout ----堆排序,输入6---- \n;
cout --Shell排序,输入7--- \n;
cout -----结束,输入0----- \n;
}
/**************************************************/
/**************堆排序 ******************************/
/**************************************************/
void heap_adj(int *array, int i, int len)
{
int nTemp;
int nChild;
for(nTemp = array[i]; 2*i+1len; i=nChild)
{
nChild = 2*i+1;
if(nChildlen-1 array[nChild]array[nChild+1])
nChild ++;
if(nChild len-1 array[nChild]nTemp)
array[i] = array[nChild];
else
break;
array[nChild] = nTemp;
}
}
void heap_create(int *array, int len)
{
for(int i=len/2; i=0; i--)
heap_adj(array,i, len);
}
void sort_all::sort_heap(int *array, int len)
{
heap_create(array, len);
for(int i=len-1; i0; i--)
{
swap_i(array[0], array[i]);
heap_adj(array, 0, i);
}
}
/******************************************************
显示全部