算法思路:
数组array[N]。
第一趟排序遍历下标0到N-1的所有数据,首先第一个元素和第二个元素比较,如果第一个大,则二者交换,否则不交换;然后第二个元素和第三个元素比较,如果第二个大,则二者交换,否则不交换……一直执行下去,最终最大的那个元素被交换到最后,一趟冒泡排序完成。
第二趟遍历0到N-2的所有数据,最大的元素被交换到倒数第二的位置。
直到遍历完成 ,形成一个有序的数组。
void BubbleSort(unsigned int unsorted[], int len)
{
int i,j;
for(i = 1; i < len; i++)//一共 n-1 趟
{
bool flag = true; //判断这趟排序是否发生位置变化,如无变化,则排序已经完成,无须执行剩下循环
for(j = 1; j < len - i + 1; j++)
{
if (unsorted[j-1] > unsorted[j])
{
int tmp = unsorted[j];
unsorted[j] = unsorted[j-1];
unsorted[j-1] = tmp;
flag=false;
}
}
if(flag)
{
return;
}
for(j = 0; j < 10; j++)
{
printf("%d, ",unsorted[j]);
}
printf("\n");
}
}
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行
csdn文章推荐受影响解决办法10个字10行