排序法之冒泡排序法

来源:互联网 发布:淘宝落地窗帘布 编辑:程序博客网 时间:2024/05/16 09:15

冒泡排序:假设有n个数据需要排序,那么我们需要确定n个从大到小的数据,每一次都挑选第n大的数据是多少,并且放大相应的位置。直到所有的数据都排列整齐了,那么我们的排序就结束了。 
1、冒泡代码

void bubble_sort(int array[], int length){    int inner = 0, outer = 0;    int median = 0;    if(NULL == array || 0 == length)        return;    for(outer = length-1; outer >= 1; outer --){        for(inner = 0; inner < outer; inner ++){            if(array[inner] > array[inner + 1]){                median = array[inner];                array[inner] = array[inner + 1];                array[inner + 1] = median;            }        }    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2、改进代码

void bubble_sort(int array[], int length){    int inner = 0, outer = 0;    int median = 0;    int flag = 1;    if(NULL == array || 0 == length)        return;    for(outer = length-1; outer >= 1 && flag; outer --){        flag = 0;        for(inner = 0; inner < outer; inner ++){            if(array[inner] > array[inner + 1]){                median = array[inner];                array[inner] = array[inner + 1];                array[inner + 1] = median;                if(flag == 0)                    flag = 1;            }        }    }}
0 0
原创粉丝点击