C++排序算法之冒泡算法

来源:互联网 发布:java web直播开源系统 编辑:程序博客网 时间:2024/06/09 19:01

1.冒泡算法


思想:从第一个数开始,将相邻两个数比较,将小的调到前面。

效果:第一趟比较,将最大的移到最后一个位置;第二趟,将次大的移到倒数第二个位置,以此类推,需要做N-1次循环。


 

void bubble_sort(int a[],int n){    for(int i=0;i<n-1;i++)        for(int j=0;j<n-1-i;j++)            if(a[j]>a[j+1])     //if(*(a+j)>*(a+j+1))            {                   //{                 int t=a[j];     //        int *p=a+j;                a[j]=a[j+1];    //        a+j=a+j+1;                a[j+1]=t;       //        a+j+1=p;错误,a是指针常量,不可修改            }                   //}}

如果用指针的话,一定要注意数组名是指针常量,不能修改其值,只能修改指针指向的值。

void bubble_sort(int a[], int n){for (int i = 0; i<n - 1; i++)for (int j = 0; j<n - 1 - i; j++)if (*(a + j) > *(a + j + 1)){int t = *(a + j);*(a + j) = *(a + j + 1);*(a + j + 1) = t;}}


   


原创粉丝点击