基本思想:两两比较相邻的关键字,如果返序则交换,直到没有返序为止。
#include<stdio.h>
#define TRUE 1
#define FALSE 0
void swap(int k[],int j,int i)
{
int tmp;
tmp = k[i];
k[i]=k[j];
k[j]=tmp;
}
void bubbleSort(int k[],int n)
{
int i,j;
for(i = 0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if(k[j]<k[i])
{
swap(k,j,i);
}
}
}
}
//正宗的冒泡排序算法
int bubbleSort1(int k[],int n)
{
int i,j;
for(i = 0;i<n;i++)
{
for(j = n - 1;j>=i;j--)
{
if(k[j]<k[i])
{
swap(k,j,i);
}
}
}
}
int main()
{
int a[10] = {0,5,9,4,8,3,7,2,6,1};
bubbleSort1(a,10);
int i;
for(i = 0;i< 10;i++)
printf("%d",a[i]);
printf("\n");
return 0;
}