Javascript 气泡排序2d数组js
Halo我正在尝试对二维数组进行气泡排序,请帮助我调试。 可以在不使用数组的情况下成功排序,但我需要使用不起作用的2d数组进行排序 我需要独立地按每行内容进行排序。 如果您可以使用任何其他排序算法进行排序,它也会有所帮助 谢谢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
//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);