起泡排序 如何学习数据结构和算法

如何学习数据结构和算法

如何学习数据结构? - 孟祥丰的回答

visualgo

我的算法学习之路

麻省理工学院公开课:算法导论

起泡排序

又名冒泡排序

版本1


``` C

//起泡排序版本1
#include<stdio.h>
#define SIZE 20
void bubble_sort(int a[],int n);
int main()
{
    int number[SIZE]={20,51,43,62,21,15,35,61,34,14,65,78,98,75,64,34,54,15,36,31};
    int i;
    bubble_sort(number,SIZE);
    for(i=0;i<SIZE;i++)
    {
        printf("%.2dn",number[i]);

    }
    printf("n");
}
void bubble_sort(int a[],int n)
{
    int i,j,temp;
    for(j=0;j<n-1;j++)
        for(i=0;i<n-1-j;i++)
    {
        if(a[i+1]<a[i])
        {
            temp=a[i];
            a[i]=a[i+1];
            a[i+1]=temp;
        }
    }
}

版本2


//起泡排序版本2
#include<stdio.h>
#define SIZE 20
void bubble_sort(int a[],int n);
int main()
{
    int number[SIZE]={20,51,43,62,21,15,35,61,34,14,65,78,98,75,64,34,54,15,36,31};
    int i;
    bubble_sort(number,SIZE);
    for(i=0;i<SIZE;i++)
    {
        printf("%.2dn",number[i]);

    }
    printf("n");
}
void bubble_sort(int a[],int n)
{
    int i,flag,temp;
    do
    {
        flag=0;
        for(i=0;i<n;i++)
            if(a[i+1]<a[i])
        {
            temp=a[i];
            a[i]=a[i+1];
            a[i+1]=temp;
            flag=1;
        }
    }while(flag);
}