Javascript 气泡排序2d数组js

Javascript 气泡排序2d数组js,javascript,arrays,sorting,multidimensional-array,Javascript,Arrays,Sorting,Multidimensional Array,Halo我正在尝试对二维数组进行气泡排序,请帮助我调试。 可以在不使用数组的情况下成功排序,但我需要使用不起作用的2d数组进行排序 我需要独立地按每行内容进行排序。 如果您可以使用任何其他排序算法进行排序,它也会有所帮助 谢谢 //make a two dimensional array function make2Darray(cols, rows){ var arr = new Array(cols); for(var i = 0; i<arr.length; i++){ arr

Halo我正在尝试对二维数组进行气泡排序,请帮助我调试。 可以在不使用数组的情况下成功排序,但我需要使用不起作用的2d数组进行排序

我需要独立地按每行内容进行排序。 如果您可以使用任何其他排序算法进行排序,它也会有所帮助

谢谢

//make a two dimensional array
function make2Darray(cols, rows){
var arr = new Array(cols);
 for(var i = 0; i<arr.length; i++){
  arr[i] = new Array(rows);
}
return arr;
}
var unsortedData = new Array([40516, 51028, 64212, 66516, 82597],
[35606, 85929, 89405, 79392, 38572]);
//Generate array
var row =2, column =5, d=0;
var unsorted= make2Darray(column,row);

for(var r=0; r<row; ++r){
for(var c =0; c<column; ++c){

  unsorted[r][c] = unsortedData[d++];
}
}  

function bubbleSort(arrayData)
{
  document.write("<h3  class='text text-info'> Bubble Sort</h3>");
  document.write("At the end of each iteration highest element is already sorted. <br />");

  //Loop through to sort

  for ( var count1 =0; count1<5; count1++)// outer loop loops (number of elements- 1) times
  {
    for ( var counter = 0; counter < 5; counter++)
    {

    //Compare elements and swap incase
     if(arrayData[count1][counter] > arrayData[count1][counter+1])
     {
      //swap positions
      var temp = arrayData[count1][counter]; 
      arrayData[count1][counter] = arrayData[count1][counter+1];
      arrayData[count1][counter+1] = temp;


     }

    }

  }
  return arrayData;
}

//pass data to sort to bubble sort function
//Determine execution time
  var bs_start_time = performance.now();
  var bs_array = bubbleSort(unsorted);
  var c = bs_array.length;

//display sorted data
for(var i=0; i<row; i++){
  for(var j = 0; j<column; j++){
    document.write(bs_array[i][j] + ", ");

    }
    document.write("<br/>");
}
//制作一个二维数组
函数make2Darray(列、行){
var arr=新数组(cols);

对于(var i=0;i我猜外部循环必须迭代到(count-1)=4,内部循环必须从count1+1迭代,因为您不应该交换已经排序的元素

for ( var count1 =0; count1<4; count1++)
  {
    for ( var counter = count1+1; counter < 5; counter++)
    {

    //Compare elements and swap incase
     if(arrayData[count1][counter] > arrayData[count1][counter+1])
     {
      //swap positions
      var temp = arrayData[count1][counter]; 
      arrayData[count1][counter] = arrayData[count1][counter+1];
      arrayData[count1][counter+1] = temp;


     }

    }
for(var count1=0;count1 arrayData[count1][counter+1])
{
//互换头寸
var temp=阵列数据[count1][counter];
arrayData[count1][counter]=arrayData[count1][counter+1];
arrayData[count1][counter+1]=温度;
}
}
//通过添加第三个循环来解决这个问题
函数bubbleSort(arrayData,r,c)
{
文件。写入(“气泡排序”);
document.write(“在每个迭代结束时,最高元素已经排序。
”); //循环排序 对于(变量计数=0;计数=0;计数2--){ 对于(变量计数器=0;计数器数组数据[计数][计数器+1]) { //互换头寸 var temp=阵列数据[计数][计数器]; arrayData[count][counter]=arrayData[count][counter+1]; arrayData[计数][计数器+1]=温度; } } } } 返回数组数据; } //将要排序的数据传递给气泡排序函数 var bs_array=bubbleSort(未排序、行、列);
你应该修正你的身份并坚持一致的格式谢谢你的帮助…我找到了答案,添加了第三个循环,成功了
//figured it out by adding a third loop
function bubbleSort(arrayData, r, c)
{
  document.write("<h3  class='text text-info'> Bubble Sort</h3>");
  document.write("At the end of each iteration highest element is already sorted. <br />"); 


  //Loop through to sort
  for ( var count =0; count<r; count++) // outer loop loops (number of elements- 1) times
  {
    for(var count2=c-1; count2>=0; count2--){
    for ( var counter = 0; counter <=count2; counter++)
    {

    //Compare elements and swap incase
     if(arrayData[count][counter] > arrayData[count][counter+1])
     {
      //swap positions
      var temp = arrayData[count][counter]; 
      arrayData[count][counter] = arrayData[count][counter+1];
      arrayData[count][counter+1] = temp;


     }

    }
  }

  }
  return arrayData;
}

//pass data to sort to bubble sort function
  var bs_array = bubbleSort(unsorted, row, column);