/**
* 快速排序演算法
* 通過一趟排序將資料分成兩部分 , 其中一部分的資料要比
* 另外一部分小或大 , 利用遞迴進行 , 直至資料有序
* 演算法步驟 :
* 1.定義兩個指標分別指向低位和高位
* 2.將陣列第乙個元素作為基數
* 3.從後往前遍歷(high--) , 直至找到第乙個小於key的值
* 4.從前往後遍歷(low++) , 直至找到第乙個大於key的值
* 5.重複 3 , 4步驟
* ps:3,4步驟是乙個前後交替不斷靠攏的乙個過程
*@param a 陣列
*@param low 低位
*@param high 高位
*/public
static
void
sort(int a, int low, int high)
int key = a[low];
int temp = 0;
while(i < j)
while(i = a[i])
i++;
if(i < j)
}//對基數左邊的資料遞迴
sort(a,low,i-1);
//對基數右邊的資料遞迴
sort(a,i+1,high);
}
排序演算法學習
一直都想把排序和搜尋類的演算法總結一下,一直拖著沒寫,主要是太懶了,現在決定還是要再好好學習下這些基本的演算法。畢竟基礎真的是很重要。好了現在開始學習第乙個排序演算法 插入排序 我記得插入排序在我們以前的資料結構教程上是第乙個介紹的 插入排序 聽這個排序名字就是將乙個什麼數要插入到某個地方,不錯,他...
排序演算法學習
1.氣泡排序 using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 排序演算法練習 從小排序 public ov...
排序演算法學習
include include include include include define n 10000500 long long beg int cnt,n void show time void swap int a,int b 稱這兩個函式為比較函式,函式名即相當於指標,將其寫入排序演算法...