冒泡排序:也就是用第一个元素和第二个元素进行比较,如果第一个元素的值大于第二个元素则两者位置互换,否则不交换。然后第二个元素和第三个元素比较.......最后序列中最大的元素被交换到了序列的尾部,这样就完成了一轮交换,经过n轮交换之后,就可以得到一个有序序列。
#include <stdio.h>
/*@ name :bubbleSort
* @brief :十进制转十六进制
* @param :@int buf[] :需要进行冒泡排序的数组
* :@int bufsize :数组的容量
* @retval :
* @date :2024/05/01
* @version :1.0 :版本
* @note :
*/
//冒泡排序 ,指的是元素两两之间进行比较交换,需要比较n轮,每轮需要比较m次,从左向右升序
void bubbleSort(int buf[],int bufsize)
{
int temp = 0; //为了临时存储交换值
//1.循环比较元素,需要比较n轮
for (int n = 1; n < bufsize; ++n)
{
//2.每轮需要比较m次
for (int m = 0; m < bufsize-n; ++m)
{
//3.数组元素两两之间进行比较交换 buf[0] buf[1] buf[1] buf[2]
if (buf[m] > buf[m+1])
{
temp = buf[m]; //备份前一个
buf[m] = buf[m+1];//把后面交换到前面
buf[m+1]= temp; //把前面交换到后面
}
}
}
}
int main(int argc, char const *argv[])
{
// 定义一个整型数组存储10个整数(但实际上这里只有9个元素)
int buf[9] = {14, 23, 12, 5, 8, 3, 9, 10, 33};
int size = sizeof(buf) / sizeof(buf[0]); // 获取数组大小
printf("原数组:");
for (int j = 0; j < size; ++j)
{
printf("%d ", buf[j]);
}
printf("\n");
// 调用冒泡排序函数
bubbleSort(buf, size);
printf("冒泡排序后的数组:");
// 打印排序后的数组
for (int i = 0; i < size; ++i)
{
printf("%d ", buf[i]);
}
printf("\n");
return 0;
}
标签:int,元素,冒泡排序,数组,printf,buf
From: https://www.cnblogs.com/CamelliaWY/p/18169763