99
来源:互联网 发布:尼赫鲁被气死 知乎 编辑:程序博客网 时间:2024/04/20 11:19
#include <iostream>
using namespace std;
using namespace std;
// 辅助函数:交换x和y的值
template <class T>
void swapData (T &x, T &y)
{
T temp;
temp = x;
x = y;
y = temp;
}
template <class T>
void swapData (T &x, T &y)
{
T temp;
temp = x;
x = y;
y = temp;
}
// 用起泡法对数组A的n个元素进行排序
template <class T>
void BubbleSort(T a[], int n)
{
int i,j;
int lastExchangeIndex;
//用于记录每趟被交换的最后一对元素中较小的下标
i = n-1; // i是下一趟需参与排序交换的元素之最大下标
while (i > 0)
//持续排序过程,直到最后一趟排序没有交换发生,或已达n-1趟
{
lastExchangeIndex = 0;
//每一趟开始时,设置交换标志为0(未交换)
for (j = 0; j < i; j++) //每一趟对元素a[0]..a[i]进行比较和交换
if (a[j+1] < a[j]) //如果元素a[j+1] < a[j],交换之
{
swapData(a[j],a[j+1]);
lastExchangeIndex = j;
//记录被交换的一对元素中较小的下标
}
// 将i设置为本趟被交换的最后一对元素中较小的下标
i = lastExchangeIndex;
//输出数据
for(int k=0;k<n;k++)
cout << a[k] << " ";
cout << endl;
//结束输出
}
}
template <class T>
void BubbleSort(T a[], int n)
{
int i,j;
int lastExchangeIndex;
//用于记录每趟被交换的最后一对元素中较小的下标
i = n-1; // i是下一趟需参与排序交换的元素之最大下标
while (i > 0)
//持续排序过程,直到最后一趟排序没有交换发生,或已达n-1趟
{
lastExchangeIndex = 0;
//每一趟开始时,设置交换标志为0(未交换)
for (j = 0; j < i; j++) //每一趟对元素a[0]..a[i]进行比较和交换
if (a[j+1] < a[j]) //如果元素a[j+1] < a[j],交换之
{
swapData(a[j],a[j+1]);
lastExchangeIndex = j;
//记录被交换的一对元素中较小的下标
}
// 将i设置为本趟被交换的最后一对元素中较小的下标
i = lastExchangeIndex;
//输出数据
for(int k=0;k<n;k++)
cout << a[k] << " ";
cout << endl;
//结束输出
}
}
int main()
{
int i;
int data1[]={1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20};
cout << "排序前的数据:" << endl;
for(i=0;i<20;i++)
cout << data1[i] << " ";
cout << endl;
cout << "开始排序..." << endl;
BubbleSort(data1, 20);
cout << "排序后的数据:" << endl;
for(i=0;i<20;i++)
cout << data1[i] << " ";
cout << endl;
return 0;
}
{
int i;
int data1[]={1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20};
cout << "排序前的数据:" << endl;
for(i=0;i<20;i++)
cout << data1[i] << " ";
cout << endl;
cout << "开始排序..." << endl;
BubbleSort(data1, 20);
cout << "排序后的数据:" << endl;
for(i=0;i<20;i++)
cout << data1[i] << " ";
cout << endl;
return 0;
}
阅读全文
0 0
- 99
- 99
- 99
- 99
- 99
- 9+99+99+......+9999999
- 99布板
- 99房
- apple 99¥
- 99乘法
- 99法则
- 99乘法
- 99表
- ocp-99
- 99累加
- 99累加
- 99累加
- 99累减
- Linux 中生产者与消费者问题
- 新路程------rc.local不执行
- 98
- $.ajax()方法从服务器获取json数据几种方式详解
- Shiro基于JDBC的配置权限控制
- 99
- matlab笔记(3)----M文件
- mybatis逆向工程
- 100
- Redis环境搭建
- linux系统性能调优第一步——性能分析(vmstat)
- 锂电池充电电路
- VS数据库建表时找不到指定的模块(异常来自HRESUT:0x8007007E)(已解决)
- 41-43.java基础。