我正在尝试使用冒泡排序对2D数组进行排序,然后打印新排序的数组。这就是我到目前为止所做的:
var arr = ["hello", "hi", "hello", "elephant", "hi"];
function onlyEvens( arr )
{
var countObj = {};
for( var i = 0; i < arr.length; i++ )
{
var item = arr[i];
if( countObj[ item ] !== undefined )
countObj[item]++;
else
countObj[item] = 1;
}//for()
var filteredArray = [];
for(var key in countObj )
{
if( countObj[key] % 2 == 0 )
filteredArray.push( key );
}
return filteredArray;
}//onlyEvens()
console.log( onlyEvens( arr ) );
这是当尺寸== 4
时打印的内容 排序前:
void sort_2Darray(int x[][MAX],int size)
{
int i;
int j;
int hold;
int pass;
for(pass=1;pass<size;pass++)
{
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
{
if(x[i][j]>x[i][j+1])
{
hold=x[i][j];
x[i][j]=x[i][j+1];
x[i]j+1]=hold;
}
}
}
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
{
printf("%2d", x[i][j]);
}
printf("\n");
}
}
}
打印4次后:
0 3 6 6
2 9 7 0
4 1 1 1
7 0 2 6
答案 0 :(得分:1)
for(pass=0;pass<size;pass++)
{
for(i=0;i<(size-1);i++)
{
for(j=0;j<(size-i-1);j++)
{
if(x[pass][j]>x[pass][j+1])
{
hold=x[pass][j];
x[pass][j]=x[pass][j+1];
x[pass][j+1]=hold;
}
}
}
我没有测试过这段代码,但我认为这应该可以正常工作并完成工作。
如果不起作用,请报告。