Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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_Quicksort - Fatal编程技术网

如何使用Javascript使快速排序算法在屏幕上显示结果

如何使用Javascript使快速排序算法在屏幕上显示结果,javascript,quicksort,Javascript,Quicksort,我的HTML和JS都在这里: 我的快速排序工作得非常好,但当我尝试测试它时,我只能在控制台中查看它。它每次都会生成随机数。我正试图使它,以便当我按下“开始快速排序”按钮时,排序的随机序列将出现在按钮下方,并将继续我按下按钮多少次 任何帮助都将不胜感激 我想您正在寻找InsertajacentHTML <!-- YOUR HTML --> <button onclick="var a = []; RandNum(a, 9); sort(a);"> Quicksort Co

我的HTML和JS都在这里:

我的快速排序工作得非常好,但当我尝试测试它时,我只能在控制台中查看它。它每次都会生成随机数。我正试图使它,以便当我按下“开始快速排序”按钮时,排序的随机序列将出现在按钮下方,并将继续我按下按钮多少次


任何帮助都将不胜感激

我想您正在寻找InsertajacentHTML

<!-- YOUR HTML -->
<button onclick="var a = []; RandNum(a, 9); sort(a);">
Quicksort Commence!</button>

<div id="QuickTimes">
</div>

========================================================

//The javascript you need

function sort(array){

    //find the element you want to insert html into
    var el = document.getElementById('QuickTimes'); 

    quickSort(array,0,array.length - 1);

    //for each item in your array insert a p element with the item in the array as the text
    array.forEach(function (item) {
        el.insertAdjacentHTML('beforeend', '<p>' + item + '</p>');     
    });

 }

快速排序开始!
========================================================
//您需要的javascript
函数排序(数组){
//查找要插入html的元素
var el=document.getElementById('QuickTimes');
快速排序(数组,0,array.length-1);
//对于数组中的每个项,插入一个p元素,数组中的项作为文本
array.forEach(函数(项){
el.insertAdjacentHTML('beforeed',''+item+'

'); }); }

参考:

在console.log()之后添加以下代码


堆栈代码段是您的朋友

当我用
document.getElementById(“QuickTimes”).insertAdjacentHTML(“beforeend”,array)替换
console.log
时,您的代码似乎工作得很好

函数快速排序(数组、左、右){
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 div=document.getElementById('QuickTimes');div.innerHTML=div.innerHTML+array+'
'顺便说一下,您的HTML中有错误。请将您的代码复制到您的问题中。链接可能会随着时间的推移而中断(尽管我怀疑github是否会很快出现),而这个问题的未来读者可能无法看到您的代码。谢谢,欢迎使用Stack Overflow。我将查看html。关于这一点,我以前尝试过,但也遇到了同样的错误“无法读取null的innerHTML属性”谢谢你的建议,我会这样做的。我尝试过这一点,当我单击“开始快速排序!”时,没有像以前那样发生任何事情。我想说清楚的是,我要做的是让快速排序的数字出现在屏幕上。如果运行“我的代码”并选中console,则每次单击按钮都会创建一个新的排序数字数组。我正试图把它放到页面的html中。对不起,我以为你知道这会做什么。你刚才复制并粘贴了准确的代码吗?实际上,您必须稍微修改代码,使其完全符合您的要求。我已经对其进行了更新,其他人也发布了同一解决方案的不同版本。他们的解决方案和我的不同之处在于,我的解决方案将为数组中的每个项目生成一个元素,然后可以对其进行单独修改。他们将生成一个包含整个数组的单个元素。祝你好运还有一件事。尽量避免给变量命名,比如“array”。javascript中有一些保留字,在你知道这些保留字是什么之前,你至少应该确保为变量名称使用一些独特和描述性的东西!如果您愿意的话,请务必投票。我这样做了,但我没有使用InsertajacentHTML,这非常有效,您应该使用InsertajacentHTML。;-)哦,我明白了,它能更好地帮助你定义你想把内容放在哪里。谢谢你提供的信息:)
var quickTimes = document.getElementById("QuickTimes");
var child = document.createTextNode(array);
quickTimes.appendChild(child);

var linebreak = document.createElement('br');
quickTimes.appendChild(linebreak);