冒泡排序

来源:互联网 发布:互联网金融产品知乎 编辑:程序博客网 时间:2024/05/16 09:59
<pre name="code" class="objc">//冒泡排序#include <stdio.h>#include <stdbool.h>void print (int *a, int n){    int i = 0;    for (i = 0; i < n; i++)printf ("%d ", a[i]);    printf ("\n");}void bubblesort (int *a, int n){    int i, j, t;    //排序n个数据,需要扫描n-1次    for (i = 0; i < n - 1; i++)    {//每次需要扫描的数据个数会减少一个(为总个数减去扫描的次数再减一)//int flag = 0;bool flag = true;        for (j = 0; j < n-i-1; j++)        {    if (a[j] > a[j+1])    {t = a[j];a[j] = a[j+1];a[j+1] = t;//flag = 1;flag = false;    }}//if (flag == 0)if (flag == true)    break;printf ("第%2d次:", i+1);        print (a, n);    }}int main (void){    int arr[] = {5,4,7,8,9,0,1,2,6,3};    int = sizeof(arr) / sizeof(*arr); /*计算数组arr的元素个数*/    printf ("排序前:");    print (arr, n);    bubblesort (arr, n);    printf ("排序后:");    print (arr, 10);    return 0;}


                                             
0 0