1.最简单的排序
2.口诀
外层循环n-1 内层循环n - 1 -i 要想升序则则大于(>) 要想降序则小于 (<)
#include <stdio.h>
//冒泡排序 array待排序数组 length:有效长度
void BubbleSort(int * array,int length)
{
if(array == NULL || length<=0){
return;
}
int i,j;
for(i = 0; i < length - 1; ++i) //外层循环 (length 相当于 n)
{
for(j = 0; j < length - 1 - i ; ++j)// 内存循环 (length 相当于 n)
{
if(array[j]>array[j+1]) //升序选择 >
{
int t=array[j];
array[j]=array[j+1];//将小的往前移动
array[j+1]=t;
}
}
}
}
int main(void)
{
int i;
int len = 11;
int array[11] = {-2,9,0,5,29,10,-19,200,120,39,38};
printf("排序前:");
for(i=0; i<len; ++i)
{
printf("%d ",array[i]);
}
printf("\n");
BubbleSort(&array[0],len);
printf("排序后(升序排列):");
for(i=0; i<len; ++i)
{
printf("%d ",array[i]);
}
printf("\n");
return 0;
}