为了账号安全,请及时绑定邮箱和手机立即绑定

您好,想要C++ 定义模板函数实现冒泡法升序排序,请问我该怎么做呢?

您好,想要C++ 定义模板函数实现冒泡法升序排序,请问我该怎么做呢?

呼唤远方 2021-07-07 11:07:29
用 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,
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超3个赞

#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;
}



查看完整回答
反对 回复 2021-07-11
  • 1 回答
  • 0 关注
  • 356 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信