using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace csharpsTest { class Program { static void Main(string[] args) { int[] arr = { 5, 2, 3, 6 }; Program mProgram = new Program(); mProgram.BubbleSort(arr); for (int i = 0; i < arr.Length; ++i) { System.Console.Write(" " + arr[i]); } } void BubbleSort(int[] arr) { int length = arr.Length; int testTimes = 0; for (int i = length - 1; i > 0; --i) { bool isAlready = true; for (int j = 1; j <= i; ++j) { if (arr[j - 1] > arr[j]) { Swap(ref arr[j - 1], ref arr[j]); isAlready = false; } } testTimes++; if (isAlready) { break; } } System.Console.WriteLine("testTims:" + testTimes); } void Swap(ref int a, ref int b) { int temp = a; a = b; b = temp; } } }
冒泡交换排序;
不停的对比、交换相邻的两个数据,并吐出最大的那个,直到吐光。
添加bool值检测是否已经有序,并break。