Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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/arrays/12.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 如何在冒泡排序中获得第n次迭代后的数组?_Javascript_Arrays_Printing_Iteration_Bubble Sort - Fatal编程技术网

Javascript 如何在冒泡排序中获得第n次迭代后的数组?

Javascript 如何在冒泡排序中获得第n次迭代后的数组?,javascript,arrays,printing,iteration,bubble-sort,Javascript,Arrays,Printing,Iteration,Bubble Sort,下面是javascript中的冒泡排序算法(为了简洁起见,删除了swap函数) 所以本质上如果我调用bubblesort(array,5),它应该返回[1,-2,3,4,5,8,9]如果需要第N次迭代,只需运行整个过程N次,然后返回结果 var array = [3, 5, 8, 4, 1, 9, -2] const bubbleSort = (arr, iter) => { for (var n = 0; n < iter; n++) { for (var i = 0

下面是javascript中的冒泡排序算法(为了简洁起见,删除了
swap
函数)


所以本质上如果我调用
bubblesort(array,5)
,它应该返回[1,-2,3,4,5,8,9]

如果需要第N次迭代,只需运行整个过程N次,然后返回结果

var array = [3, 5, 8, 4, 1, 9, -2]

const bubbleSort = (arr, iter) => {
  for (var n = 0; n < iter; n++) {
    for (var i = 0; i < arr.length; i++) {
      for (var j = 1; j < arr.length; j++) {
        if (arr[j - 1] > arr[j]) {
          swap(arr, j - 1, j);
        }
      }
    }
  }
  return arr;
};

bubbleSort(array,5)
var数组=[3,5,8,4,1,9,-2]
常量泡泡运动=(arr,iter)=>{
对于(var n=0;narr[j]){
互换(arr,j-1,j);
}
}
}
}
返回arr;
};
bubbleSort(数组,5)

您可以使用
for
循环和
forEach
内部循环来交换元素

let数组=[3,5,8,4,1,9,-2]
函数bubblesort(arr,n){
for(设x=0;x{
if(arr[i+1]console.log(bubblesort(array,5))
如果我做对了,在
i==iter
break
循环上?你的代码不正确。@PM77-1嗯,你能更具体一点吗?冒泡排序代码是我从wiki中提取的经典代码。您的内部循环不依赖于
I
@PM77-1,谢谢,已修复。您添加的外部代码是添加额外负载,而不提供任何帮助。数组将在n的值变为偶数1之前进行排序您的意思是什么?我不明白。
bubbleSort(数组,5)
对数组进行5次排序,然后返回结果吗?是的,完全正确!它将(尝试)比需要多排序4次,这是额外的,并且根本不会更改数组。当N次迭代(不是完全排序)完成时,我们要求打破循环,但仍然没有得到它。一次迭代和一次“完全排序”有什么区别?“完全分类”是什么意思?这里有部分排序吗?是的,部分排序是用户在这里要求的。需要多次迭代(如果数组尚未排序)才能获得一个完整的排序,这与我的答案几乎完全相同,我得到了2次否决票。@Nenad此函数只是打印到控制台。我希望函数在第n次迭代后返回该arr。我计划稍后在我的另一个函数中使用它。@theprogrammer094它在n次迭代后返回数组,console.log只是用于演示。确实,你是对的。我的坏,没有看到外面的for循环。我认为这是可行的。谢谢。@programmer094您可以在这种情况下使用生成器
After iteration 1: array = [3, 5, 4, 1, 8, -2, 9]  
After iteration 2: array = [3, 4, 1, 5, -2, 8, 9]  
.  
.  
After iteration 5: array = [1, -2, 3, 4, 5, 8, 9]  
After iteration 6: array = [-2, 1, 3, 4, 5, 8, 9]
var array = [3, 5, 8, 4, 1, 9, -2]

const bubbleSort = (arr, iter) => {
  for (var n = 0; n < iter; n++) {
    for (var i = 0; i < arr.length; i++) {
      for (var j = 1; j < arr.length; j++) {
        if (arr[j - 1] > arr[j]) {
          swap(arr, j - 1, j);
        }
      }
    }
  }
  return arr;
};

bubbleSort(array,5)