冒泡排序

来源:互联网 发布:教学软件介绍 编辑:程序博客网 时间:2024/06/06 10:52

Bubble 函数:

void Bubble(int a[],int n){for(int i=1;i<n;i++)for(int j=1;j<n+1-i;j++)if (a[j-1]>a[j]){ int temp=a[j-1]; a[j-1]=a[j]; a[j]=temp;}}

其中的交换部分也可写成Swap函数,两种方法:指针与引用

  形参为指针:

void Swap(int *a,int *b){int temp=*a; *a=*b; *b=temp;}

形参为引用:

void Swap(int &a,int &b){  int temp=a;  a=b;  b=temp;}

测试代码:

#include <iostream>using namespace std;void Bubble(int a[],int n);void Swap(int *a,int *b);int main(){  const int N=10;  int a[N];  cout<<"please input "<<N<<" Numbers:"<<endl;  for(int i=1;i<=N;i++)  cin>>a[i-1];  Bubble(a,N);  for(int i=1;i<=N;i++)  cout<<a[i-1]<<" ";  cout<<endl<<endl;}void Bubble(int a[],int n){for(int i=1;i<n;i++)for(int j=0;j<n-i;j++)if (a[j]>a[j+1])Swap(&a[j],&a[j+1]);}void Swap(int *a,int *b){int temp=*a;*a=*b;*b=temp;}

结果:



0 0