前言
通过函数模板技术设计一个冒泡排序算法,领悟泛型编程
的思想和冒泡排序
的思想,然后使用QTest
测试各种输入值,养成先写测试代码,后写程序代码的习惯
0x0 编写一个int版本的冒泡函数
1.不管要排序的数组长度多长,外面的一个
循环次数
都是数组长度-1
2.由于里面的循环每执行1次,最后一个数据都会是最大的那个,就不需要进行排序的范围了,依此类推,j的边界
每次都要-i
3.两两比较,如果前一个值大于后一个值,就进行值的交换,这是冒泡的核心思想
int SortAlgorithm::BubbleSort(QVector<int> &arr)
{
short len = arr.size()-1;
if(len <= 0)return -1;
for(int i=0;i<len;++i)
{
for(int j=0;j<len-i;++j)
{
if(arr[j]>arr[j+1])
{
int tmp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = tmp;
}
}
}
return 0;
}
0x1 类模板函数
1.在声明和实现增加
template<class T>
,然后把参数替换成T或者其他字母
即可
2.函数声明和实现都必须放在.h文件中,否则编译
不会通过