C++ 定义模板函数实现冒泡法升序排序

用 C++ 语言的编程风格编写两个函数模板:( 1 ) void bubble_sort(T a[], int num); 功能:用冒泡排序法对数组 a 中的 num 个元素进行升序排列。( 2 ) void print(T a[],int num) ; 功能:输出数组 a 中的 num 个元素值,输出所有元素结束后换行主函数中定义两个数组:int a[6]; 和 double b[7];数组的元素由键盘读入,无输入提示。然后调用以上两个函数实现程序的功能。本题输入及输出结果对应如下 :测试用例 1 :输入内容:3 5 9 -7 1 6< 回车 >1.1 9.8 -5.4 3.5 6.8 3.2 0.1< 回车 >输出内容:-7,1,3,5,6,9,-5.4,0.1,1.1,3.2,3.5,6.8,9.8,

#include <iostream>
using namespace std;

template<typename T>
void bubble_sort(T a[], int num)
{
int i, j, temp;
int flag = 1;
for (i = 0; i < num - 1 && flag == 1; i++) //冒泡排序N*N
{
flag = 0;
for (j = 0; j < num - i - 1; j++)
{
if (a[j + 1] < a[j])
{
temp = a[j + 1];
a[j + 1] = a[j];
a[j] = temp;
flag = 1;
}
}
}
}

template<typename T>
void print(T a[],int num)
{
int i;
for (i = 0; i < num; i++)
{
cout << a[i] << " ";
}
}

int main()
{
int i;
int a[6];
double b[7];
for (i = 0; i < 6; i++)
{
cin >> a[i];
}
for (i = 0; i < 7; i++)
{
cin >> b[i];
}
bubble_sort(a, 6);
bubble_sort(b, 7);
print(a, 6);
print(b, 7);
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答