C++的冒泡排序法的原理是什么?

103 阅读1分钟

  冒泡排序法的原理是:

  相邻两个元素进行比较,将较大者和较小者互换位置,这样一趟比较下来就会使要排列的所有元素中的最大的元素的沉到最后,然后在进行下一趟的比较,最后进行完比较之后,就排好序了。

  假如有n个元素进行比较,一共会比较n-1趟,第j趟进行比较n-j次两两比较。

  下面的例子是数组中的10个元素进行比较,一共比较9趟,每趟比较9-j次。

#include<iostream>

  using namespace std;

  int main()

  {

  int i,j,a[10],t=0;

  for(i=0;i<10;i++)

  cin>>a[i];

  for(j=0;j<9;j++)

  {

  for(i=0;i<9-j;i++)

  {

  if(a[i]>a[i+1])

  {

  t=a[i];

  a[i]=a[i+1];

  a[i+1]=t;

  }

  }

  }

  for(i=0;i<10;i++)

  {

  cout<<a[i];

  }

  return 0;

  }

     =======================================

  c语言冒泡排序法:

 #include<stdio.h>

  int main()

  {

  int a[100],i,j,t,n;

  scanf("%d",&n);

  for(i=1;i<=n;i++)

  scanf("%d",&a[i]);

  for(i=1;i<=n-1;i++)

  {

  for(j=1;j<=n-i;j++)

  {

  if(a[j]<a[j+1])

  {

  t=a[j];

  a[j]=a[j+1];

  a[j+1]=t;

  }

  }

  }

  for(i=1;i<=n;i++)

  printf("%d",a[i]);

  getchar();

  getchar();

  return 0;

  }

  免费领取C++学习资料包一份