码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 冒泡排序

时间:2017-08-17 14:43:27      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:stdio.h   span   ++   数列   turn   pen   ble   color   return   

冒泡排序( Bubble Sort )

比较相邻的两个数,如果错误则进行交换,重复访问整个排序的数列

技术分享
#include <stdio.h>
#define KSIZE 8

static int count;

// 冒泡排序
void bubble_sort(int a[],int n);

int main(int argc, const char * argv[]) {
    
    int number[KSIZE] = {1,2,3,4,5,6,7,8};
    int i;
    bubble_sort(number, KSIZE);
    printf("排序次数:%d\n",count);
    for (i=0; i<KSIZE; i++) {
        printf("%d ",number[i]);
    }
    
    return 0;
}

void bubble_sort(int a[],int n)
{
    int i,j,temp;
    
    for (j = 0; j<n-1; j++)
        for (i=0; i<n-j-1; i++)
            if (a[i] < a[i+1]) { // 从大到小
                temp   = a[i];
                a[i]   = a[i+1];
                a[i+1] = temp;
                count++;
            }
}
冒泡排序

解析

1,2,3,4,5 — 希望得到:5,4,3,2,1

2,3,4,5,1 - 第一次排序 — 4次

3,4,5,2,1 - 第二次排序 - 3次

4,5,3,2,1 - 第三次排序 - 2次

5,4,3,2,1 - 第四次排序 - 1次

C语言 冒泡排序

标签:stdio.h   span   ++   数列   turn   pen   ble   color   return   

原文地址:http://www.cnblogs.com/chenyanliang/p/7380807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!