这里尽量以较为正规的代码风格的代码将这些经典的排序和查找算法描述出来,目的无他,温故而知新。
u 几个要用到的函数
1) 随机产生测试数据的函数
函数名称 |
InitData | |||
作者 |
k_eckel |
时间 |
2005/07 | |
函数功能 |
随机产生一个待排序的数组 | |||
入口参数 |
Len |
产生数组的大小(长度) | ||
MAX_BOUND |
数组中最大元素的大小(默认为1000) | |||
输出 |
数组的首地址 | |||
//注意添加头文件:#include <ctime> template <class Item> Item* InitData(int len,int MAX_BOUND = 1000) { Item* data = new Item[len];
srand((unsigned)time(NULL));
for (int i = 0; i < len; i++) { data[i] = rand() % MAX_BOUND; }
return data; } | ||||
2) 打印数组内容
函数名称 |
PrintData | ||||
作者 |
k_eckel |
时间 |
2005/07 | ||
函数功能 |
打印数组,并可在打印前附加相关信息 | ||||
入口参数 |
data |
待输出数组 | |||
Len |
数组的大小 | ||||
strInfo |
输出时显示的信息 | ||||
输出 |
无 | ||||
//注意添加头文件:#include <iostream> template <class Item> void PrintData(const Item* data,int len,const char* strInfo) { std::cout<<strInfo<<"........"<<endl; for (int i = 0; i < len ; ++i) { std::cout<<data[i]<<" "; } std::cout<<endl; } return data; | |||||
3) 交换两个元素
template <class Item> void Exch2Item(Item& item1,Item& item2) { Item tmp = item1; item1 = item2; item2 = tmp; } |
以上3个函数在排序中经常要用到,这里给出,在相应的排序算法中不再重复。