/***
* 快速排序簡單實現
* * @author bobo
* */
public class quicksort ;
show(a);
quicksort(a, 0, a.length - 1);
show(a);
} /***
* 快速排序的核心方法
* * @param a
* 待排序的序列
* @param begin
* 待排序列子串行起始位置索引
* @param end
* 待排序列子串行結束位置索引
*/private static void quicksort(int a, int begin, int end)
// 定義此次排序的標尺元素 此處選擇開始位置為標尺元素 不要些a[0] 因為要多次遞迴呼叫
int x = a[begin];
// 定義左右的指標
int p1 = begin;// 左指標
int p2 = end;// 右指標
// 定義比較方向 true表示向右 false表示向左
boolean dr = true;
// 進行迴圈操作,條件是兩個指標不相撞
l1: while (p1 < p2)
}// 如果能執行到這一步 說明沒有找到小於標尺的元素,則說明序列本身就ok 則進行如下賦值
p2 = p1;
} else
// 如果能執行到這一步 說明沒有找到小於標尺的元素,則說明序列本身就ok 則進行如下賦值
p1 = p2;}}
} // 進行遞迴呼叫
a[p1] = x;// 填充空白處
show(a, begin, end,p1);
quicksort(a, begin, p1 - 1);
quicksort(a, p1 + 1, end);
} private static void show(int a, int begin, int end, int p1) else
}system.out.println();
} /**
* 顯示 陣列元素
* * @param a
*/private static void show(int a)
system.out.println();
}}
java 快速排序
public class myquicksort while strvoid middle strvoid low lowif low hight else if hight middle temp strvoid hight strvoid hight strvoid low strvoid lo...
快速排序(java)
快速排序 public class quacksort int pivot arr low 取第乙個數作為中間數 左滑塊當前的下標數,從第二個數字開始,從最後乙個開始 int left low 1 int right high 右滑塊當前的下標數 while left right 從右邊開始找 wh...
快速排序(Java)
快速排序的思想是基於分治法加上遞迴思想,排序陣列時,將陣列分成兩個小部分,然後對它們遞迴排序,直到它們都不可再分為止。快速排序的平均執行時間是o nlog n 遠比插入排序的o n 2 時間小。快速排序 param arr param start param end return private s...