在对一个整形数组元素进行排序时,我们可以使用冒泡排序来实现
代码实现如下
#include<stdio.h>
int main()
{
int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
int sz = sizeof(arr) / sizeof(arr[0]); //计算数组长度
int i = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < sz; i++) //每一趟冒泡排序
{
for (j = i+1; j <= sz - i - 1; j++)
{
if (arr[i] > arr[j])
{
//交换两数
tmp = arr[j];
arr[j] = arr[j];
arr[j] = tmp;
}
}
}
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}
在每一趟冒泡排序中,也可以用以下代码来实现
(思路稍有不同,没有上面的方法那么容易理解)
#include<stdio.h>
int main()
{
int arr[] = { 10,9,8,7,6,5,4,3,2,1 };
int sz = sizeof(arr) / sizeof(arr[0]); //计算数组长度
int i = 0;
int j = 0;
int tmp = 0;
for (i = 0; i < sz; i++) //每一趟冒泡排序
{
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1]) //比较相邻两个元素的大小
{
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}
运行结果
欢迎关注,学习编程请关注 Go-ly,让我们一起将编程进行到底!
更多干货等你哦!