什么是冒泡排序
冒泡排序的英文Bubble Sort,是一种最基础的交换排序。
简单地说,就是重复的走访要排序的元素列,依次地比较相邻的两个数;如果他们之间的顺序错误就把他们两个的位置交换过来。走访元素的工作是重复地进行直到没有相邻元素进行交换,也就是说该元素列已经排序完成。
这个名字的由来是因为越大的元素会经由元素交换慢慢“浮动“”数列的顶端(升序或降序排列),如同碳酸饮料中的二氧化碳的气泡最终会上浮到“顶端”一样,故叫冒泡排序。
冒泡原理
数字 | 1 2 3 4 5 |
---|---|
比较四次 | 2 3 4 5 1 |
比较三次 | 3 4 5 2 1 |
比较两次 | 4 5 3 2 1 |
比较一次 | 5 4 3 2 1 |
共循环了四次,这样一次次得进行两两比较,直到没有任何一对数字需要比较。
其中排序方式有两种:
1)从大到小 2)从小到大
代码如下
int[] nums = new int[] { 1,4,5,2,6}; //定义数组
int temp =0; //定义临时用于交换位置的变量
for (int j=0; j<nums.length -1;j++) //冒泡的循环次数
{
for(int i= 0;i<nums.length-1-j;j++) //内部比较的次数
{
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.Write(nums[i]+"/t"); //输出数据, /t为制表符
}
Console.ReadKey();