排序--(单向)冒泡排序

来源:互联网 发布:比特币交易平台源码 编辑:程序博客网 时间:2024/05/16 14:33

基本原理(升序):对于给定的N个数据,从第一个数据开始依次对相邻的两个数据进行比较,数据大于后面时,交据位置,进行一轮比较和位置交换后,最大的数将位于第N 位;再对前(N-1)个数据进行比较和位置交换;重复该过程直至比较的数据只剩下最后一个。

复杂度:平均时间复杂度为O(N^2)

代码实现(C语言)

void BubbleSort(int *a, int n){    int i , j;    int temp = 0;    for(i=0; i<n; i++)    {        for(j=0; j<n-i-1; j++)        {            if(a[j+1] < a[j])            {                temp = a[j+1];                a[j+1] = a[j];                a[j] = temp;            }        }    }}int main(){    int i;    int a[] = {2,5,1,4,6,8,3,9,7};    int n = sizeof(a)/sizeof(a[0]);    BubbleSort(a,n);    for(i=0; i<n; i++)    {        printf("%d ",a[i]);    }    return 0;}
0 0