冒泡排序
冒泡排序
算法思想
-
一个元素和第二个元素进行比较,如果第一个元素的值大于第二个元素则两者位置互换,否则不交换。然后第二个元素和第三个元素比较.......最后序列中最大的元素被交换到了序列的尾部,这样就完成了一轮交换,经过n轮交换之后,就可以得到一个有序序列。
-
算法复杂度为O(x2)
代码展示
//冒泡排序 ,指的是元素两两之间进行比较交换,需要比较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; //把前面交换到后面
}
}
}
}