冒泡排序
来源:互联网 发布:mysql数据库程序设计 编辑:程序博客网 时间:2024/05/20 16:40
/*
冒泡排序:
从头扫描 顺序比较相邻两元素大小
*/
# include <iostream>
using namespace std;
int sum = 0;
//打印数组元素
void printArray(int r[])
{
for(int i=0;i<10;i++)
cout<<r[i]<<" ";
cout<<endl;
}
//交换相邻元素位置1
/*void swap(int &a,int &b)
{
int tmp = a;
a = b;
b = tmp;
}*/
//交换相邻元素位置1
void swap(int *a,int *b)
{
int tmp = *a;
*a = *b;
*b= tmp;
}
void BubbleSort(int r[],int length)
{
int n = length;
//如果一趟冒泡排序,没有发现一个逆序的,则结束冒泡排序!change = false; 最多进行n-1趟
bool change = true;
for(int i=1;i<=n-1&&change;i++)
{
sum++;//记录进行了多少趟
change = false;
for(int j=0;j<n-i;j++)
{
if(r[j]>r[j+1])
{
// swap(r[j],r[j+1]);
swap(&r[j],&r[j+1]);
change = true;
}
}
//如果change=true才输出
if(change)
{
cout<<"第"<<i<<"趟冒泡排序后:"<<endl;
printArray(r);
}
}
}
void main()
{
int r[] = {48,62,35,77,55,14,35,98,22,40};
cout<<"排序前:"<<endl;
printArray(r);
BubbleSort(r,10);
cout<<"排序后:"<<endl;
printArray(r);
cout<<"共进行"<<sum<<"趟排序"<<endl;
}
冒泡排序:
从头扫描 顺序比较相邻两元素大小
*/
# include <iostream>
using namespace std;
int sum = 0;
//打印数组元素
void printArray(int r[])
{
for(int i=0;i<10;i++)
cout<<r[i]<<" ";
cout<<endl;
}
//交换相邻元素位置1
/*void swap(int &a,int &b)
{
int tmp = a;
a = b;
b = tmp;
}*/
//交换相邻元素位置1
void swap(int *a,int *b)
{
int tmp = *a;
*a = *b;
*b= tmp;
}
void BubbleSort(int r[],int length)
{
int n = length;
//如果一趟冒泡排序,没有发现一个逆序的,则结束冒泡排序!change = false; 最多进行n-1趟
bool change = true;
for(int i=1;i<=n-1&&change;i++)
{
sum++;//记录进行了多少趟
change = false;
for(int j=0;j<n-i;j++)
{
if(r[j]>r[j+1])
{
// swap(r[j],r[j+1]);
swap(&r[j],&r[j+1]);
change = true;
}
}
//如果change=true才输出
if(change)
{
cout<<"第"<<i<<"趟冒泡排序后:"<<endl;
printArray(r);
}
}
}
void main()
{
int r[] = {48,62,35,77,55,14,35,98,22,40};
cout<<"排序前:"<<endl;
printArray(r);
BubbleSort(r,10);
cout<<"排序后:"<<endl;
printArray(r);
cout<<"共进行"<<sum<<"趟排序"<<endl;
}
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- 冒泡排序
- Excel使用技巧
- JAVASCRIPT应用篇(5)--设置TEXTAREA的MAXLENGTH属性
- 消费者的福音:IBM推出店内货物扫描和自助结账服务
- 你刚才在淘宝上买了一件东西
- HDU 2128 Tempter of the Bone II(BFS)
- 冒泡排序
- onInterceptTouchEvent和onTouchEvent调用时序
- dps
- IE8上支付宝、银行网站老是显示证书错误的解决办法
- typedef的四个用途和两个陷阱
- 这些年的项目管理心得
- 链栈(简单的入栈出栈)
- js Function.call
- 每天学点linux命令(5)