冒泡: i的起始位置是数组的末尾,j是数组的第一个元素,j从第一个数开始找大的值,每次和下一位进行比较,把最大的值放到j+1位,保证i的位置存放最大值,falg记录是否发生过交换,没有发生过交换则说明排序已完成
// 冒泡
void bubble_sort(TYPE* arr,size_t len)
{
bool flag = true;//flag记录中间过程是否产生过一次交换
for(int i=len-1; i>0 && flag; i--)
{
flag = false;
//j从第一个数开始,找到最大值并赋给i
for(int j=0; j<i; j++)
{
if(arr[j] > arr[j+1])
{
swap(arr[j],arr[j+1]);
flag = true;
}
}
}
show_arr(arr,len);
printf(" :%s\n",__func__);
}