冒泡排序是一种简单的排序算法,它通过重复地交换相邻两个元素的位置来进行排序。算法的基本思想是,每次比较相邻的两个元素,如果它们的顺序不正确,则交换它们的位置,使较大的元素逐渐向数组的末尾移动。
具体描述冒泡排序的步骤如下:
从数组的第一个元素开始,依次比较相邻的两个元素。
如果当前元素大于后一个元素,就交换它们的位置,将较大的元素向后移动。
继续对每一对相邻元素进行比较和交换,直到最后一对元素。
完成一轮比较后,最大的元素将被放置在数组的最后一个位置。
重复执行上述步骤,每次比较的元素数量减少一个,直到所有元素都被排序。
冒泡排序的特点是每次比较都会将当前未排序部分的最大元素"冒泡"到最后的位置,因此称为冒泡排序。这是一种简单但效率相对较低的排序算法,对于小规模的数据集来说是可行的,但对于大规模数据集来说会变得较慢。
#include <stdio.h>
//冒泡排序从大到小
int main()
{
int array[] ={12,8,13,9,100,235,128,667};
int i;
int j;
int tmp;
int len = sizeof(array)/sizeof(array[0]);
for(i=0;i<len-1;i++){//双重for循环 第一层跑一次 第二层跑完 再回到第一层继续下一次
for (j=0;j<len-1-i;j++){
if (array[j]<array[j+1]){ //冒泡排序从大到小< 从小到大 if (array[j]>array[j+1])
tmp=array[j];
array[j]=array[j+1];
array[j+1]=tmp;
}
}
}
for (i=0;i<len;i++){
printf("%d ",array[i]);
}
return 0;
}