1、冒泡排序
1.冒泡排序 将被排序的記錄數組R[1..n]垂直排列,每個記錄R[i]看作是重量為R[i].key的氣泡。根據輕氣泡不能在重氣泡之下的原則,從下往上掃描數組R:凡掃描到違反本原則的輕氣泡,就使其向上"飄浮"(冒泡是以得名)。如此反複進行,直到最後任何兩個氣泡都是輕者在上,重者在下為止。 下面是種的往下冒泡的例子
<code>class</code> <code>Program</code>
<code> </code><code>{</code>
<code> </code><code>/// <summary></code>
<code> </code><code>/// 冒泡排序</code>
<code> </code><code>/// </summary></code>
<code> </code><code>/// <param name="numArr"></param></code>
<code> </code><code>public</code> <code>void</code> <code>Sort(</code><code>int</code><code>[] numArr)</code>
<code> </code><code>{</code>
<code> </code><code>int</code> <code>tmpNum;</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>i = 0; i < numArr.Length;i++ )</code><code>//最多做numArr.Length-1趟排序</code>
<code> </code><code>{</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>j = 0; j < numArr.Length-1;j++ )</code>
<code> </code><code>{</code>
<code> </code><code>if</code> <code>(numArr[j]>numArr[j+1])</code>
<code> </code><code>{</code>
<code> </code><code>tmpNum = numArr[j];</code>
<code> </code><code>numArr[j] = numArr[j + 1];</code>
<code> </code><code>numArr[j + 1] = tmpNum;</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>static</code> <code>void</code> <code>Main(</code><code>string</code><code>[] args)</code>
<code> </code><code>int</code><code>[] Arr =</code><code>new</code> <code>int</code><code>[] {3,6,1,9,8,7 };</code>
<code> </code><code>Program p =</code><code>new</code> <code>Program();</code>
<code> </code><code>p.Sort(Arr);</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>k = 0; k < Arr.Length;k++ )</code>
<code> </code><code>Console.Write(</code><code>"{0} "</code><code>, Arr[k]);</code>
<code> </code><code>}</code>
2、選擇排序(Selection Sort)
選擇排序的基本思想是:每一趟從待排序的記錄中選出關鍵字最小的記錄,順序放在已排好序的子檔案的最後,直到全部記錄排序完畢。
<code>/// <summary></code>
<code>/// 選擇排序(Selection Sort)的基本思想是:每一趟從待排序的記錄中選出關鍵字最小的記錄,</code>
<code>/// 順序放在已排好序的子檔案的最後,直到全部記錄排序完畢。</code>
<code>/// </summary></code>
<code>/// <param name="numArr"></param></code>
<code>public</code> <code>void</code> <code>SelectionSort(</code><code>int</code><code>[] numArr)</code>
<code>{</code>
<code> </code><code>int</code> <code>min, tmpNum;</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>i = 0; i < numArr.Length - 1;i++ )</code>
<code> </code><code>{</code>
<code> </code><code>min = i;</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>j = i + 1; j < numArr.Length;j++ )</code>
<code> </code><code>{</code>
<code> </code><code>if</code> <code>(numArr[j] < numArr[min])</code>
<code> </code><code>{</code>
<code> </code><code>min = j;</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>tmpNum = numArr[i];</code>
<code> </code><code>numArr[i] = numArr[min];</code>
<code> </code><code>numArr[min] = tmpNum;</code>
<code> </code><code>}</code>
<code>}</code>
<code>static</code> <code>void</code> <code>Main(</code><code>string</code><code>[] args)</code>
<code> </code><code>int</code><code>[] Arr =</code><code>new</code> <code>int</code><code>[] {3,6,1,9,8,7 };</code>
<code> </code><code>Program p =</code><code>new</code> <code>Program();</code>
<code> </code><code>p.SelectionSort(Arr);</code>
<code> </code><code>for</code> <code>(</code><code>int</code> <code>k = 0; k < Arr.Length; k++)</code>
<code> </code><code>Console.Write(</code><code>"{0} "</code><code>, Arr[k]);</code>
本文轉自Work Hard Work Smart部落格園部落格,原文連結:http://www.cnblogs.com/linlf03/archive/2012/02/03/2336691.html,如需轉載請自行聯系原作者