今天就先从冒泡排序开始吧,没什么难的,仅供菜鸟参考。
void bub_sort(u32 *array, u32 len)
{
u32 i = 0, j = 0,flag = 0;
for(i=1;i<len;i++) { /* array[0]存放临时变量 */
for(j=1;j<=len-i;j++){
if(array[j]>array[j+1]){
flag = 1;
array[0]= array[j];
array[j] = array[j+1];
array[j+1] = array[0];
}//if
}//for j
if(flag == 0) /*排了一遍,没有交换数据,说明本来数组就是有序的,直接退出*/
break;
}//for i
return ;
}
添加flag主要是为了在数组本来就是有序的情况下,可以使排序复杂度降为O(n);