Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何对用户输入的数字和/或字符串进行快速排序?_Javascript_Html_Css_Quicksort - Fatal编程技术网

Javascript 如何对用户输入的数字和/或字符串进行快速排序?

Javascript 如何对用户输入的数字和/或字符串进行快速排序?,javascript,html,css,quicksort,Javascript,Html,Css,Quicksort,我的快速排序是这样设计的,只需按下两个按钮,随机数就会自动生成和排序,以及我在代码中输入的字符串。我想这样做,我可以在网站上创建一个框,供用户输入几个数字和/或名称,快速排序将对其进行排序并显示。我该怎么做呢?谢谢。代码如下: function quickSort(array, left, right){ var len = array.length, pivot, partitionIndex; if(left < right){ pivot = ri

我的快速排序是这样设计的,只需按下两个按钮,随机数就会自动生成和排序,以及我在代码中输入的字符串。我想这样做,我可以在网站上创建一个框,供用户输入几个数字和/或名称,快速排序将对其进行排序并显示。我该怎么做呢?谢谢。代码如下:

function quickSort(array, left, right){
   var len = array.length, 
   pivot,
   partitionIndex;


  if(left < right){
    pivot = right;
    partitionIndex = partition(array, pivot, left, right);

   quickSort(array, left, partitionIndex - 1);
   quickSort(array, partitionIndex + 1, right);
  }
  return array;
}

function partition(array, pivot, left, right){
   var pivotValue = array[pivot],
       partitionIndex = left;


   for(var i = left; i < right; i++){
    if(array[i] < pivotValue){
      swap(array, i, partitionIndex);
      partitionIndex++;
    }
  }

  swap(array, right, partitionIndex);
  return partitionIndex;
}


function swap(array, i, j){
   var temp = array[i];
   array[i] = array[j];
   array[j] = temp;
}


function RandNum(array, quantity) {
    var num;
    for (var i = 0; i < quantity; i++) {
        num = Math.floor(Math.random() * (100 - 50 + 1)) + 10;
        if (num !== array[i - 1]) {
            array.push(num);
        } else {
            i--;
        }
    }
}

function sort(array){
    quickSort(array,0,array.length - 1);
 document.getElementById("QuickTimes").insertAdjacentHTML("beforeend",array+"<br/>");
}

function string(array){
    var test_array = ["Santa", "Arrow", "God", "Solo"];
    var sorted_array = sort(test_array, function(a,b) { return a<b; });
console.log(array);
}
函数快速排序(数组、左、右){
var len=array.length,
支点
分区指数;
if(左<右){
枢轴=右;
partitionIndex=分区(数组、轴、左、右);
快速排序(数组,左,分区索引-1);
快速排序(数组,partitionIndex+1,右);
}
返回数组;
}
功能分区(数组、轴、左、右){
var pivotValue=数组[pivot],
partitionIndex=左;
对于(变量i=左;i<右;i++){
if(数组[i]<数据透视值){
交换(数组、i、分区索引);
partitionIndex++;
}
}
交换(数组,右,分区索引);
返回分区索引;
}
函数交换(数组,i,j){
var-temp=数组[i];
数组[i]=数组[j];
数组[j]=温度;
}
函数RandNum(数组、数量){
var-num;
对于(变量i=0;i);
}
函数字符串(数组){
var-test_数组=[“圣诞老人”、“箭头”、“上帝”、“独奏”];

var sorted_array=sort(test_array,function(a,b){return aYour
快速排序
算法运行良好,您似乎只需要一个
或用户可以键入的东西,以获取该字段的
.value
,可能还有
.split('\n'))
要生成初始数组吗?我尝试过这样做,但无法找到原因,因为我尝试时失败了:/
<head>

  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <title>Quicksort Test</title>
  <meta name="description" content="">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="Puravsquick.js"></script>
    <button onclick="var a = []; RandNum(a, 9); sort(a);" "sort()">Quicksort Commence!</button>
    <button onclick="string()" "sort()">String Quicksort Commence!</button>
    <div id="QuickTimes">
    </div>
<head>
<html>