C语言冒泡排序法分析及代码实现

冒泡排序法:

所谓冒泡排序法,就是对一组数字进行从大到小或者从小到大排序的一种算法。具体方法是,相邻数值两两交换。从第一个数值开始,如果相邻两个数的排列顺序与我们的期望不同,则将两个数的位置进行交换(对调);如果其与我们的期望一致,则不用交换。重复这样的过程,一直到最后没有数值需要交换,则排序完成。一般地,如果有N个数需要排序,则需要进行(N-1)趟起泡。

步骤分析:

 

C语言冒泡排序法分析及代码实现

代码实现:

 

 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
 
//冒泡排序法
voidbubbleSort(intarr[],intlen){
    for(inti=0;i<len-1;i++){
        for(intj=0;j<len-1-i;j++){
            //相邻两个元素进行比较,如果前面元素比后面元素大则交换位置
            if(arr[j]>arr[j+1]){
                arr[j]=arr[j]^arr[j+1];
                arr[j+1]=arr[j]^arr[j+1];
                arr[j]=arr[j]^arr[j+1];
            }
        }
    }
    //打印排序后的数组
    for(inti=0;i<len;i++){
        printf("%d ",arr[i]);
    }
}
 
intmain(intargc,constchar*argv[]){
    //定义一个元素个数为10的数组,并赋值
    intnum[9]={6,8,1,2,4,3,5,9,7};
    
    //调用函数,传入数组和元素个数
    bubbleSort(num,9);
    
    printf(" ");
    return0;
}