冒泡排序是 一种比较简单的排序算法,其核心逻辑就是不断地比较相邻的两个数,如果前数 大于 后数,就把 两个数交换。 这样一趟比较下来,确保把最小的数字移动到了数列开始位置,或者把最大的数字移动到了数列的结尾位置。
转自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