冒牌排序概念 |
排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
原理 |
原理
比较相邻的元素,把较大的元素放到前面,以此类推直至一行结束,由上述得到新的一行,再依据新的一行进行比较,因为第二行是在原行比较的基础上进行的,所以二行靠后的数字(在第一行中比下来的)可以省去比较的步骤。以此类推到无元素需要比较。
图形示意
例如我们将1、2、3、4、5进行冒泡处理(采用有小到大)

解释图形
已知原有为1、2、3、4、5。在原值的基础上开始比较。也就是拿1进行比较。
1与2比2打,所以把二放在前面,1与3比3大,故再次交换位置,一次类推得到第二行(第一次比较,一共比较四次)
这个时候还是可以继续比较的,故我们在二行的基础上继续,2与3比,3大交换位置,以此类推得到第三行(第二次比较,比较三次)后续以此类推至到无可比。
代码 |
//i:比数 j:比较轮数
int[] nums = new int[] { 1, 2, 3, 4, 5, 6 };
int temp = 0;
for (int j=0;j<nums.Length-1;j++)
{
for (int i=0;i<nums.Length-1-j;i++)
{
if (nums[i]>nums[i+1])//实现循环比较
{
temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}
}
}
for (int i = 0;i < nums.Length;i++ )
{
Console.WriteLine(nums[i]+"\t");
}
Console.ReadKey();