快速排序

快速排序一种既节省空间又快速的排序方法。思想为:二分法,核心在于定义一个任意的参照数——基准数,再对其操作!这是一个草稿版!后续会继续补充相应说明。
 
这是其它的排序方法:
  冒泡排序
  桶排序

实现代码

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;
}
效果展示在这里插入图片描述

未完待续 …

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值