C#排序算法——冒泡排序
“定义:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。”
冒泡排序可以说是最简单的一种排序算法了,核心思想就是通过相邻元素的比较和交换来实现排序。比如6,1,8,2这四个数来排序,首先6和1来比较,6>1把6交换到右边,同理6<8,8本身就在右边不用替换,之后8>2把8交换到右边,重复直至排序完成。
动图演示:
01
—
Code
下面使用C#代码进行实现:
/// <summary>
/// 冒泡排序,从小到大
/// </summary>
private void MaoPaoSort(List<int> Nums)
{
//循环nums数组,每循环一遍,就能排好一个数
for (int i = 0; i < Nums.Count; i++)
{
//i代表已经排好的数,所以减去。因为在下面中j与j+1比较,所以还要减1
for (int j = 0; j < Nums.Count-1-i; j++)
{
//若左边的数大于右边的数则交换
if (Nums[j] > Nums[j + 1])
{
Swap(Nums, j, j + 1);
}
}
}
}
/// <summary>
/// 交换数据
/// </summary>
private void Swap(List<int> Nums,int index1, int index2)
{
int temp = Nums[index1];
Nums[index1] = Nums[index2];
Nums[index2] = temp;
}
END
感谢阅读
你知道的越多,你不知道的越多
我是EAST
一个靠互联网苟且偷生的程序员
咱们下期见!
扫描二维码关注我吧