之前我写过一个博客是对字符数组、整型数组以及结构体的排序:点击打开博客
今天用模板方式写了通用冒泡排序,附上代码如下:
#include<iostream>
using namespace std;
//冒泡排序法
template<typename T>
void bubble_sort(T *arr,const int len)
{
for (int i = 0; i < len; i++)
{ for (int j = 0; j < len - i - 1; j++)
{
if (arr[j + 1] < arr[j])
{
T ret = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = ret;
}
}
}
}
template<typename T>
void PrintArray(T array[], int sz)
{
for (int i = 0; i < sz; i++)
{
cout << array[i] << " " ;
}
cout << endl;
}
int main(int argc, char *argv[])
{
int array1[] = { 3, 4, 7, 8, 9, 2, 3, 5, 4, 0, 1 }; //整型数组排序测试代码
int sz1 = sizeof(array1) / sizeof(array1[0]);
bubble_sort<int>(array1, sz1);
PrintArray<int>(array1,sz1);
char array2[] = { 'a', 'h', 'u', 'r', 's' , 'y'}; //字符数组排序测试代码
int sz2 = sizeof(array2) / sizeof(array2[0]);
bubble_sort<char>(array2, sz2);
PrintArray<char>(array2, sz2);
return 0;
}
总结:冒泡排序法其实是排序算法中比较常见的简单排序算法,主要是对for循环的考察核排序思路的考察。当然,其他排序算法,随后博主会持续更新出来。