冒泡排序C语言版
/**冒泡排序
*假定a[0]为最大,将较大的元素往后移动,最后所有的元素必然有序
*考虑时,可假设原数组为逆序
*/
#include "stdio.h"
typedef int type;
void Swap(type &a,type &b) //交换函数
{
type temp;
temp=a;
a=b;
b=temp;
}
void bubbleSort(type a[],int n)
{
int i,j;
for(i=0;i<n-1;i++) //n-1次交换,最后一个元素不用交换
for(j=0;j<n;j++) //控制元素下标,第几号元素的比较
if(a[j]>a[j+1])
Swap(a[j],a[j+1]);
}
void main()
{
int i;
type a[10]={2,1,3,4,6,5,8,7,0,9};
printf("排序前的数组:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
bubbleSort(a,10);
printf("排序后的数组:");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}