1.冒泡排序可以将杂乱无章的数列排序整齐;
比如给定数组{5,2,1,4,3,6,7,8,9,10}经过冒泡排序可变成
{1,2,3,4,5,6,7,8,9,10};
2.算法原理
比较相邻元素,如果第一个比第二个大,就交换这两个元素,然后大的元素和后面元素比较,同理,如果比后面的大就交换这两个,直到最大的元素放在最后的位置上,完成一次冒泡排序,十个数据作比较的话,及第一个数字要和其他九个作比较,需要九次,第二个数字比较的话,就不需要和已经在结尾的最大数比较了10-1-1=8,只需要比较八次,一趟冒泡排序会把大的数放在后面,10个元素最多需要九趟。
3.代码展示
int main() { int arr[10] = {10,9,8,7,6,5,4,3,2,1}; int sz = sizeof(arr) / sizeof(arr[0]);//数组长度 int i; for (i = 0; i < sz - 1; i++)//趟数 { int j = 0; for (j = 0; j < sz - 1 - i; j++)//比较次数 { if (arr[j] > arr[j + 1])//前面大于后面,交换 { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } } } for (i = 0; i < sz; i++)//打印数组 { printf("%d ", arr[i]); } }
3.运行展示