1 | int[] numbers = { 5, 8, 14, 1, 5678 };
2 | int tempVar;
3 | for (int i = 0; i < numbers.length; i++)
4 | {
5 | for(int j = 0; j < numbers.length; j++)
6 | {
7 | if(numbers[i] > numbers[j + 1])
8 | {
9 | tempVar = numbers [j + 1];
10 | numbers [j + 1]= numbers [i];
11 | numbers [i] = tempVar;
12 | }
13 | }
14 | }
15 | for (int i = 0; i < numbers.length; i++)
16 | {
17 | System.out.println(numbers[i].toString());
18 | }
我是Java的新手,他自己学习.我有一些问题
泡泡分拣.
我的问题是第5到第7行.从我的理解来看,外在的
循环以i开始为0,然后内部循环从j开始运行为0和
每次增加1直到j达到4,之后是外循环
将前进到i是1.因此在外循环前进到i之前
1,应该发生以下情况.
当i = 0时,数字i = 5然后内循环运行:
当j = 0时,数字j = 5
当j = 1时,数字j = 8
当j = 2时,数字j = 14
当j = 3时,数字j = 1
当j = 4时,数字j = 5678
然后,如果数字i大于数字j 1,则两个数字是
交换.
然后我们将5与5进行比较,然后将5与8进行比较,然后将5与14进行比较,然后是5
用1,然后5用5678,这与冒泡排序有什么不同
作品(比较5与8,然后8与14,然后14与1和
然后1与5678).
我无法理解第5行到第7行的代码是如何导致的
比较两个相邻数字的方式
泡泡排序.任何人都可以指出我认为错了吗?
如果任何人更详细地指出如何指出,将不胜感激
第5到7行工作.如果一步一步会更好
可以提供细分.谢谢!