100
来源:互联网 发布:java架构师要求 编辑:程序博客网 时间:2024/06/09 18:57
#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
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100
- 100*100面试题
- lineto(100,100)
- 相遇-100
- 求100!
- 100决杀
- 吵架100
- 100句
- 100句好句
- Top 100
- 100year
- $.ajax()方法从服务器获取json数据几种方式详解
- Shiro基于JDBC的配置权限控制
- 99
- matlab笔记(3)----M文件
- mybatis逆向工程
- 100
- Redis环境搭建
- linux系统性能调优第一步——性能分析(vmstat)
- 锂电池充电电路
- VS数据库建表时找不到指定的模块(异常来自HRESUT:0x8007007E)(已解决)
- 41-43.java基础。
- 半监督学习(转载)
- html+css网页前端实现(二)
- python 获取文件创建日期、修改日期 Get created & modified time of a file