前言
冒泡排序是一种较简单的排序算法,名字由来如同碳酸饮料的二氧化碳气泡最终会浮到顶端。越大的元素会经过交换慢慢到达数列的顶端或尾端。(升序或降序)
原理(降序)
– 比较相邻的两个元素,如果第二个数比第一个数大就换位置,第三个数比第二个数大换位置,以此类推。直到将数组中的数字按降序(升序)排序为止。
– 随着比较轮数的增加,比较次数逐轮递减。
– 第一次比较次数为数组长度-1
例如:
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
2 | 3 | 4 | 5 | 1 | 比较4次 |
3 | 4 | 5 | 2 | 1 | 比较3次 |
4 | 5 | 3 | 2 | 1 | 比较2次 |
5 | 4 | 3 | 2 | 1 | 比较1次 |
代码-C#
int[] nums = new int[] { 21, 32, 432, 5354, 0, 65, 4, 6 }; //定义名为nums的数组
int max = 0;
for (int j = 0; j < nums.Length -1; j++) //j为比较轮数,为数组长度-1
{
for (int i = 0; i < nums.Length - 1 - j; i++) //随着比较轮数的增加,比较次数逐轮递减
{
if (nums[i] < nums[i + 1]) //如果前一个数大于后一个数,互换位置
{
max = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = max;
}
}
}
for (int i = 0; i < nums.Length ; i++)
{
Console.Write(nums[i]+"\t");
}
Console.ReadKey();