系统粉 > 电脑问答 > 其他问答

已解决关于数组排序的问题。。

提问者:勾勾手不弃晗  |  浏览次  |  提问时间:2017-02-18  |  回答数量:9

关于数组排序的问题。。 1 public class A{ 2 public static void main(String[] args){ 3   int arrayOflnts[] = {32,87,589,12,1076,2000,8,622,127}; 4   int temp; 5   for(int i=0;i<arrayOflnts.length;i++){ 6    for(int j=arrayOflnts.length-1;j>i;j--){      //i和j分别是用来代表什么的呢? 7      if(arrayOflnts>arrayOflnts[j]){     //不懂 8       temp = arrayOflnts; 9       arrayOflnts = arrayOflnts[j]; 10       arrayOflnts[j] = temp; 11      } 12    } 13   } 14   for(int k=0;k<9;k++){ 15    System.out.print(arrayOflnts[k] + \"

已有9条答案
天掉下来自己扛

天掉下来自己扛

回答数:217  |  被采纳数:86

[s:462] [s:462] [s:462] [s:462]
2017-02-18 02:21:13
赞 21
朽木乖

朽木乖

回答数:121  |  被采纳数:21

不懂java,不过 if(arrayOflnts>arrayOflnts[j]){ 看起来有语法错误
2017-02-18 02:37:08
赞 12
风寒锦

风寒锦

回答数:219  |  被采纳数:63

if(arrayOflnts>arrayOflnts[j]){ //这个if语句是判断什么的呢?
temp = arrayOflnts;
arrayOflnts = arrayOflnts[j];
arrayOflnts[j] = temp;
这句初看应该是一个比较两个数字大小的,如果前面的数字大于后面的,则把它们的顺序交换
2017-02-18 06:56:53
赞 21
你只是衰锅而已

你只是衰锅而已

回答数:11  |  被采纳数:47

这个程序是用冒泡算法的排列数字大小,但是里面有错误
if(arrayOflnts>arrayOflnts[j]){
temp = arrayOflnts;
arrayOflnts = arrayOflnts[j];
arrayOflnts[j] = temp;
应该是这样才对
2017-02-18 07:53:40
赞 1
wenyuans96

wenyuans96

回答数:145  |  被采纳数:4

for(int j=arrayOflnts.length-1;j>i;j--){ // (1)注:分别用1和2来代替之两个地方
if(arrayOflnts>arrayOflnts[j]){ // (2)
这是一个冒泡排序,分为两个循环:
(1)是第二个循环。
(2)是判断这个数组是按升序,还是按降序排列的。
我在这里为两个循环举个例子如:1,2,3,4,5我用冒泡降序排列出来
1,2,3,4,5
2,1,3,4,5
2,3,1,4,5
2,3,4,1,5
2,3,4,5,1
现在,把2排上出
3,2,4,5,1
3,4,2,5,1
3,4,5,2,1
。。。。。类推。。。
把1,2,等排上出叫做第一个排列
而,把1排上去要又五次排列这个排列叫做第二个排列。
2017-02-18 11:43:29
赞 14
里维夫人

里维夫人

回答数:16  |  被采纳数:119

还是不太明白。。
2017-02-18 12:18:02
赞 1
hell永远存在

hell永远存在

回答数:128  |  被采纳数:82

我觉得第二个for循环
要改改
for(int j=arrayOflnts.length-1;j>i;j--)
改成
for(int j=i+1;j<=arrayOflnts.length;j++)
2017-02-18 19:51:12
赞 12
凤台一日游

凤台一日游

回答数:178  |  被采纳数:140

1 public class A{ //类名
2 public static void main(String[] args){ //方法名
3 int arrayOflnts[] = {32,87,589,12,1076,2000,8,622,127}; //定义一个数组函数,有9个值。
4 int temp; //定义一个中间变量
5 for(int i=0;i<arrayOflnts.length;i++){ //定义临时变量i,i小于数组的长度9;
6 for(int j=arrayOflnts.length-1;j>i;j--){ //i和j分别是用来代表什么的呢?
/*
*这里定义的临时变量j,给的初始值是等于数组的长度9减1,即8;且要求j>i才能进入循环
*/
7 if(arrayOflnts>arrayOflnts[j]){ //这段对比是正确的,我好像在哪看过。不过我给不出一共理由。
8 temp = arrayOflnts;
9 arrayOflnts = arrayOflnts[j];
10 arrayOflnts[j] = temp;
11 }
12 }
13 }
//这个循环是为了打印需要。
14 for(int k=0;k<9;k++){
15 System.out.print(arrayOflnts[k] + " ");
16 }
17 System.out.println();
18 }
19 }

+++++++++++++++++++++++++++++++++++++++++++

第二行:
public static void main(String[] args){
规范写法(不算错误):
public static void main(String args[]){
第六行:
for(int j=arrayOflnts.length-1;j>i;j--){ //i和j分别是用来代表什么的呢?

i和j是分别对函数定义的两个临时变量,标记数组的。
2017-02-19 00:00:08
赞 17
小鑫文玩店

小鑫文玩店

回答数:123  |  被采纳数:98

1 public class A{
2 public static void main(String[] args){
3 int arrayOflnts[] = {32,87,589,12,1076,2000,8,622,127};
4 int temp;
5 for(int i=0;i<arrayOflnts.length;i++){
6 for(int j=arrayOflnts.length-1;j>i;j--){
// 这里的for循环 可不可以改为:for(int j=0;j<arrayOflnts.length;j++)
7 if(arrayOflnts>arrayOflnts[j]){ //如果一个数大于其他的数 是不是这样理解?
// 下面的这三句代码 是不是排序呢? 是怎么实现的呢?
8 temp = arrayOflnts; //将值大的数赋给temp 是不是这样理解?
9 arrayOflnts = arrayOflnts[j]; //这个是什么意思呢?
10 arrayOflnts[j] = temp; //这个又是什么意思呢?
11 }
12 }
13 }
14 for(int k=0;k<9;k++){
15 System.out.print(arrayOflnts[k] + " ");
16 }
17 System.out.println();
18 }
19 }
2017-02-18 03:26:35
赞 12
相关问答
最新其他问答
解决方法