冒泡排序是 一种比较简单的排序算法,其核心逻辑就是不断地比较相邻的两个数,如果前数 大于 后数,就把 两个数交换。 这样一趟比较下来,确保把最小的数字移动到了数列开始位置,或者把最大的数字移动到了数列的结尾位置。
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
代码如下:
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace bubble_sort
{
class Program
{
static int calCount = 0;
static void Bubble_Sort(ref int[] intArr)
{
for (int outside = 0; outside < intArr.Length-1; outside++)
{
for (int index = 0; index < intArr.Length-1-outside; index++)
{
calCount++;
//如果前一个大于后一个,交换两个值;
if (intArr[index] > intArr[index + 1])
{
intArr[index] = intArr[index] + intArr[index + 1];
intArr[index + 1] = intArr[index] - intArr[index + 1];
intArr[index] = intArr[index] - intArr[index + 1];
}
}
}
}
static void Main(string[] args)
{
int[] intArr = new int[10] { 51, 41, 31, 91, 81, 71, 61, 21, 11, 0 };
Console.Write("排序前:");
for (int i = 0; i < intArr.Length; i++)
{
Console.Write(intArr[i]+" ");
}
Console.WriteLine();
Bubble_Sort(ref intArr);
Console.Write("排序后:");
for (int i = 0; i < intArr.Length; i++)
{
Console.Write(intArr[i] + " ");
}
Console.WriteLine();
Console.WriteLine("计算次数:" + calCount);
Console.ReadLine();
}
}
}
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn
原文:http://blog.csdn.net/huutu/article/details/45579219