通过先确定位置然后找数字的方法。
把一个数字放在合适位置上,这个选择的位置可以是最前面的位置,也可以是最后面的位置。
通过不断对两个相邻数字进行顺序调整,最终把合适的数字放在选定的位置上。
/*
* 冒泡排序
*/
#include <stdio.h>
void bubble_sort(int *p_num, int size)
{
int num = 0, num1 = 0, tmp = 0;
for (num = size - 1;num >= 1;num--)
{
//每次把最大数字放在下标为num
//的存储区里
for (num1 = 0;num1 <= num - 1;num1++)
{
//每次把下标为num1和num1 + 1
//的数字进行顺序调整
if (*(p_num + num1) > *(p_num + num1 + 1))
{
tmp = *(p_num + num1);
*(p_num + num1) = *(p_num +num1 + 1);
*(p_num + num1 + 1) = tmp;
}
}
}
}
int main(void)
{
int arr[] = {31, 24, 45, 63, 18, 3, 14};
int num = 0;
bubble_sort(arr, 7);
for (num = 0;num <= 6;num++)
{
printf("%d ", arr[num]);
}
printf("\n");
return 0;
}
本文介绍了一种经典的排序算法——冒泡排序,并提供了详细的C语言实现代码。通过不断地比较并交换相邻元素的位置,最终实现数组中所有数字的升序排列。
2173

被折叠的 条评论
为什么被折叠?



