天天看点

c#-冒泡排序-算法

冒泡排序(Bubble Sort)

冒泡排序算法的运作如下:

1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3.针对所有的元素重复以上的步骤,除了最后一个。

4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

平均时间复杂度

c#-冒泡排序-算法
c#-冒泡排序-算法

<code>/// &lt;summary&gt;</code>

<code>/// 冒泡排序</code>

<code>/// &lt;/summary&gt;</code>

<code>/// &lt;param name="arr"&gt;&lt;/param&gt;</code>

<code>/// &lt;param name="count"&gt;&lt;/param&gt;</code>

<code>public</code> <code>static</code> <code>void</code> <code>BubbleSort(</code><code>int</code><code>[] arr,</code><code>int</code> <code>count)</code>

<code>{</code>

<code>    </code><code>int</code> <code>i = count, j;</code>

<code>    </code><code>int</code> <code>temp;</code>

<code>    </code><code>while</code> <code>(i &gt; 0)</code>

<code>    </code><code>{</code>

<code>        </code><code>for</code> <code>(j = 0; j &lt; i - 1; j++)</code>

<code>        </code><code>{</code>

<code>            </code><code>if</code> <code>(arr[j] &gt; arr[j + 1])</code>

<code>            </code><code>{</code>

<code>                </code><code>temp = arr[j];</code>

<code>                </code><code>arr[j] = arr[j + 1];</code>

<code>                </code><code>arr[j + 1] = temp;</code>

<code>            </code><code>}</code>

<code>        </code><code>}</code>

<code>        </code><code>i--;</code>

<code>    </code><code>}</code>

<code>}</code>

<code>   </code><code>//使用例子</code>

<code>   </code><code>int</code><code>[] y =</code><code>new</code> <code>int</code><code>[] { 1, 32, 7, 2, 4, 6, 10, 8, 11, 12, 3, 9, 13, 5 };</code>

<code>    </code><code>BubbleSort(y,  y.Length );</code>

<code>    </code><code>foreach</code> <code>(</code><code>var</code> <code>item</code><code>in</code> <code>y)</code>

<code>        </code><code>Console.Write(item+</code><code>" "</code><code>); </code>

<code>    </code><code>//1 2 3 4 5 6 7 8 9 10 11 12 13 32</code>

  

    本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/p/3305999.html,如需转载请自行联系原作者

继续阅读