幾種常見排序演算法及其效率
介紹了幾種交換排序的演算法
1。氣泡排序(Bubble Sort)是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢“浮”到數列的頂端。
Code:
using System;
usingSystem.Collections.Generic;
namespaceCom.Colobu.Algorithm.Exchange
{
///<summary>
///氣泡排序是這樣實現的:
///
/// 1.首先將所有待排序的數字放入工作列表中。
/// 2.從列表的第一個數字到倒數第二個數字,逐個檢查:若某一位上的數字大於他的下一位,則將它與它的下一位交換。
/// 3.重複2號步驟(倒數的數字加1。例如:第一次到倒數第二個數字,第二次到倒數第三個數字,依此類推...),直至再也不能交換。
///
///平均時間複雜度:O(n^2)
///Stability:Yes
///</summary>
public classBubbleSortAlgorithm
{
public static voidBubbleSort<T>(IList<T>szArray) whereT:IComparable
{
int i;
int j;
T temp; //交換變數
bool swapped = false;
for (i = szArray.Count - 1; i >= 0;i--)
{
for (j = 1; j <= i;j++)
{
if (szArray[j - 1].CompareTo(szArray[j]) >0)
{