改进的冒泡算法
2009-10-08 21:54
218 查看
// improve_bubble.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include"iomanip.h"
#include "iostream.h"
#define MAXSIZE 100
//交换两个元素的值
void swap(int &a,int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
//改进的冒泡算法
void improve_bubble(int a[],int n)
{
int i,k,flag;
k = n-1;
flag = 1;
while(flag)
{
k = k-1;
flag = 0;
for(i = 0 ; i <= k ; i ++ )
if(a[i] > a[i+1])
{
swap( a[i] , a[i+1] );
flag = 1;
}
}
}
int main(int argc, char* argv[])
{
int a[MAXSIZE],n,i;
cout<<"please input the numbers of array"<<endl;
cin>>n;
cout<<"please input every value of element"<<endl;
for(i = 0;i < n;i++)
{
cout<<"please input the"<<setw(5)<<i<<setw(35)<<"element(enter Enter to switch):"<<endl;
cin>>a[i];
}
improve_bubble(a,n);
for(i = 0;i < n;i++)
cout<<a[i]<<setw(8);
return 0;
}
//
#include "stdafx.h"
#include"iomanip.h"
#include "iostream.h"
#define MAXSIZE 100
//交换两个元素的值
void swap(int &a,int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
//改进的冒泡算法
void improve_bubble(int a[],int n)
{
int i,k,flag;
k = n-1;
flag = 1;
while(flag)
{
k = k-1;
flag = 0;
for(i = 0 ; i <= k ; i ++ )
if(a[i] > a[i+1])
{
swap( a[i] , a[i+1] );
flag = 1;
}
}
}
int main(int argc, char* argv[])
{
int a[MAXSIZE],n,i;
cout<<"please input the numbers of array"<<endl;
cin>>n;
cout<<"please input every value of element"<<endl;
for(i = 0;i < n;i++)
{
cout<<"please input the"<<setw(5)<<i<<setw(35)<<"element(enter Enter to switch):"<<endl;
cin>>a[i];
}
improve_bubble(a,n);
for(i = 0;i < n;i++)
cout<<a[i]<<setw(8);
return 0;
}
相关文章推荐
- 冒泡算法改进--双向冒泡算法 Double Bubble
- Java排序算法--之冒泡算法改进
- 冒泡算法改进--双向冒泡算法 Double Bubble
- 冒泡算法的改进:用标志量来记录每趟交换数据的情况,如flag=0表示没有进行交换;
- 冒泡算法改进
- [算法设计与分析]3.3.2标志量的妙用(冒泡算法改进+三个数的最小公约数)
- 冒泡算法改进
- 鸡尾酒算法--冒泡算法的改进版
- 改进版的冒泡排序(双向冒泡算法)
- 关于冒泡算法的改进
- 内部排序算法之二【改进的冒泡算法,鸡尾酒算法】
- 冒泡算法的改进
- 冒泡算法及改进(属于交换排序)
- 冒泡算法的改进具体实现
- 快速排序算法(冒泡算法的改进)
- 二元冒泡排序(改进的冒泡算法)
- 改进的冒泡算法
- 冒泡算法改进
- 改进版网页表格的合并单元格(支持不连续的列合并)