演算法學習 常用排序

2021-05-23 15:38:29 字數 1323 閱讀 7055

他家都說:「程式設計師到最後比的是演算法」,我對演算法也算情有獨鍾,最近這些天,沒事的時候就看看演算法相關的書,感覺還是演算法能體現乙個程式設計師的能力,今天學習了常用的排序演算法,不好意思還是c#**:

using system;

using system.collections.generic;

using system.linq;

using system.text;

namespace suanfa

a[j] = sortdata;

break;//break在這裡很重要,如果沒有break,你看看a[j]=sortdata;就執行了i-k次,

// 排序後就會出現同乙個數出現多次,當然有的數就去掉了。}}

}return true;

}//氣泡排序

public bool bubblesort(int a, int n)}}

return true;

}//選擇排序

//把當前要排序的那個數與它後面的數進行比較,如果哪個數更小,就讓這個更小的輸入與後面的數進行比較,

//一直比較下去,將當前要排序的數與更小的那個數交換

public bool selectsort(int a, int n)

}if (k != i)

}return true;

}#region 合併排序

/// 被排序的陣列

/// 開始排序的下標

/// 結束排序的下標

/// 陣列最後乙個元素的下標

private void merge(int a, int e, int r, int n)

for (int t = 0; t < n2; t++)

int i = 0, j = 0, k = e;

while (i < n1 && j < n2)

else

}while (i < n1)

while (j < n2)

}public void mergesort(int a, int r, int n)

}#endregion

//合併兩個陣列,合併排序的思想就是合併兩個陣列

public int mergetwo(int a, int b)

else

}while (i < n1)

while (j < n2)

return c;

}//雜湊演算法

//老實說這段**不是我寫的,雜湊演算法的確有點難懂,但我還是會他搞定

public void hillsort(int list)

list[j - 1] = t;}}

}   }}

排序演算法學習

一直都想把排序和搜尋類的演算法總結一下,一直拖著沒寫,主要是太懶了,現在決定還是要再好好學習下這些基本的演算法。畢竟基礎真的是很重要。好了現在開始學習第乙個排序演算法 插入排序 我記得插入排序在我們以前的資料結構教程上是第乙個介紹的 插入排序 聽這個排序名字就是將乙個什麼數要插入到某個地方,不錯,他...

排序演算法學習

1.氣泡排序 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 排序演算法練習 從小排序 public ov...

排序演算法學習

快速排序演算法 通過一趟排序將資料分成兩部分 其中一部分的資料要比 另外一部分小或大 利用遞迴進行 直至資料有序 演算法步驟 1.定義兩個指標分別指向低位和高位 2.將陣列第乙個元素作為基數 3.從後往前遍歷 high 直至找到第乙個小於key的值 4.從前往後遍歷 low 直至找到第乙個大於key...