在javascript中使用快速排序,根据另一个数组对一个数组进行排序
我想按照在javascript中使用快速排序,根据另一个数组对一个数组进行排序,javascript,Javascript,我想按照c的升序对a进行排序c按此方法排序,但a不按此方法排序,a在代码末尾只有四个未排序的元素。我应该做什么改变 var a = ['e','b','d','a','f','g','c']; function quick_Sort(origArray,a) { var i; var length = origArray.length; if (origArray.length <= 1) { return [origArray, a]; } else { va
c
的升序对a
进行排序c
按此方法排序,但a
不按此方法排序,a
在代码末尾只有四个未排序的元素。我应该做什么改变
var a = ['e','b','d','a','f','g','c'];
function quick_Sort(origArray,a) {
var i;
var length = origArray.length;
if (origArray.length <= 1) {
return [origArray, a];
} else {
var left = [];
var right = [];
var left1 = [];
var right1 = [];
var newArray = [];
var newArray1 = [];
var pivot = origArray.pop();
var pivot1 = a.pop();
for (i = 0; i < length-1; i++) {
if (origArray[i] <= pivot) {
left.push(origArray[i]);
left1.push(a[i]);
} else {
right.push(origArray[i]);
right1.push(a[i]);
}
}
return [newArray.concat((quick_Sort(left, left1)[0]), pivot, (quick_Sort(right, right1)[0])),newArray1.concat((quick_Sort(left, left1)[1]), pivot1, (quick_Sort(right, right1)[1]))];
}
}
var c = [3, 0, 2, 5, -1, 4, 1 ];
console.log("Original array: " + c);
console.log("Original array: " + a);
var e = quick_Sort(c,a);
c = e[0];
a = e[1];
console.log("Sorted array: " + c);
console.log("Sorted array: " + a);
var a=['e','b','d','a','f','g','c'];
功能快速排序(origArray,a){
var i;
变量长度=origaray.length;
如果(origArray.length如果要从c
的相应值对a
进行排序,可以:
var a=['e','b','d','a','f','g','c'];
var c=[3,0,2,5,-1,4,1];
var[sortedA,sortedC]=a.map((v,i)=>[v,c[i]])//将a和c配对
.sort((x,y)=>x[1]-y[1])//根据c值对数组进行排序
.减少((c,v)=>{
c[0]。推(v[0]);
c[1]。推(v[1]);
返回c;
},[[],[]);//分开a和c
控制台日志(sortedA);
console.log(sortedC);
如果要从c
的相应值对a
进行排序,可以:
var a=['e','b','d','a','f','g','c'];
var c=[3,0,2,5,-1,4,1];
var[sortedA,sortedC]=a.map((v,i)=>[v,c[i]])//将a和c配对
.sort((x,y)=>x[1]-y[1])//根据c值对数组进行排序
.减少((c,v)=>{
c[0]。推(v[0]);
c[1]。推(v[1]);
返回c;
},[[],[]);//分开a和c
控制台日志(sortedA);
console.log(sortedC);
“我想按照c的升序对a进行排序”这部分对我来说不是很清楚。正如在你的问题中排序的“c”将是[-1,0,1,2,3,4,5]。那么在这种情况下,“a”应该排序什么?a
将按照与c
排序相同的顺序进行排序。a
将是['a'、'b'、'c'、'd'、'e'、'f'、'g']
“我想按照c的升序对a进行排序”这部分对我来说不是很清楚。正如在你的问题中,排序的'c'应该是[-1,0,1,2,3,4,5]。那么在这种情况下,a
将按照与c
相同的顺序进行排序。a
将是[a'、'b'、'c'、'd'、'e'、'f'、'g']
什么是b
这里?@aqwusjaro为了避免混淆,我在sortOn js排序中将变量重命名为x
和y
,需要比较两个变量。这是一个无需排序c
的文档。此脚本进行排序。@aqwusjaro请检查代码。这将返回sortedA和sortedC什么是b
这里?@aqwusjaro为了避免混淆,我在sortOn js排序中将变量重命名为x
和y
,需要比较两个变量。这是一个无需排序c
的文档。此脚本进行排序。@aqwusjaro请检查代码。这将返回sortedA和sortedC