快速排序一种既节省空间又快速的排序方法。思想为:二分法,核心在于定义一个任意的参照数——基准数,再对其操作!这是一个草稿版!后续会继续补充相应说明。
这是其它的排序方法:
冒泡排序
桶排序
实现代码
JS实现方式,完整代码如下:
var arr = [101];
var i,j,n;
n = prompt("请输入要排序的数据个数:")
arr[0] = 0;
for(var i = 1; i <= n; i++){
arr[i] = prompt("请输入第" + i +"个数字:");
console.log("输入第"+ i + "个数据" + arr[i]);
}
console.log(arr);
quicksort(1, n); // 快速排序方法调用
console.log("**** 快速排序 ****")
for(i = 1; i <= n; i++){
console.log(arr[i]);
}
// 排序函数
function quicksort(left, right){
var i,j,t,temp;
if(left > right){
return;
}
temp = arr[left]; // temp 中存储基准数;
i = left;
j = right;
/* 哨兵查找交换 */
while(i != j){
while(arr[j] >= temp && i < j)
j--;
while(arr[i] <= temp && i < j)
i++;
if(i < j){
t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}
/* 当 i = j 则哨兵相遇 即与基准数交换位置 */
arr[left] = arr[i];
arr[i] = temp;
// console.log("left = " + i + "\t right = "+ j + "\t i = " + i);
quicksort(left, i - 1);
quicksort(i + 1, right);
return;
}
效果展示
未完待续 …