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>