c语言数组练习 冒泡排序:将数组16 25 9 90 23 降序排序。冒泡排序的基本原理,遍历和交换,第一轮循环;如果某个数字小于后面的数字,那么就交换。
1 25 16 9 90 23
2 25 16 9 90 23
3 25 16 90 9 23
4 25 16 90 23 9
需要比较多轮,数组长度-1轮
每轮比较的次数(数组长度-1)-当前的轮数
#include
#include
#define n 5
int main()
{
int i,j;
int temp;
int nums[n] = {16,25,9,90,23 };
//外层循环控制轮数
for (i = 0; i < n - 1; i++)
{
//内层循环控制每轮比较的次数
for (j = 0; j < n - i-1; j++)
//如果当前值小于后面一个数,则交换
{
if (nums[j] < nums[j + 1])
{
temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
printf("排序后的结果是: \n");
for (i = 0; i < n; i++)
{
printf("%d\t", nums[i]);
}
for (i = 0; i < n - 1; i++)
{
//内层循环控制每轮比较的次数
for (j = 0; j < n - i - 1; j++)
//如果当前值小于后面一个数,则交换
{
if (nums[j] > nums[j + 1])
{
temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
printf("排序后的结果是: \n");
for (i = 0; i < n; i++)
{
printf("%d\t", nums[i]);
}
}