1、冒泡排序
1.冒泡排序 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"(冒泡因此得名)。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。 下面是种的往下冒泡的例子
class Program { /// <summary> /// 冒泡排序 /// </summary> /// <param name="numArr"></param> public void Sort(int[] numArr) { int tmpNum; for (int i = 0; i < numArr.Length -1 ;i++ )//最多做numArr.Length-1趟排序 { for (int j = 0; j < numArr.Length- i - 1;j++ ) { if (numArr[j]>numArr[j+1]) { tmpNum = numArr[j]; numArr[j] = numArr[j + 1]; numArr[j + 1] = tmpNum; } } } } static void Main(string[] args) { int[] Arr = new int[] {3,6,1,9,8,7 }; Program p = new Program(); p.Sort(Arr); for (int k = 0; k < Arr.Length;k++ ) { Console.Write("{0} ", Arr[k]); } } }
2、选择排序(Selection Sort)
选择排序的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕。
/// <summary> /// 选择排序(Selection Sort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录, /// 顺序放在已排好序的子文件的最后,直到全部记录排序完毕。 /// </summary> /// <param name="numArr"></param> public void SelectionSort(int[] numArr) { int min, tmpNum; for (int i = 0; i < numArr.Length - 1;i++ ) { min = i; for (int j = i + 1; j < numArr.Length;j++ ) { if (numArr[j] < numArr[min]) { min = j; } } tmpNum = numArr[i]; numArr[i] = numArr[min]; numArr[min] = tmpNum; } } static void Main(string[] args) { int[] Arr = new int[] {3,6,1,9,8,7 }; Program p = new Program(); p.SelectionSort(Arr); for (int k = 0; k < Arr.Length; k++) { Console.Write("{0} ", Arr[k]); } }
作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!