冒泡问题 本帖最后由 wzp630147841 于 2011-11-23 11:17:09 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for (int i = 0; i < array.length; ++i) { for (int j = 0; j < array.length - i - 1; ++j) { // 升序排列 if (array [j] > array [j + 1]) { temp = array [j]; array [j] = array [j + 1]; array [j + 1] = temp; } } } // 升序排列 ----------错在这里if (array [j] > array [j + 1]) {temp = array [j];array [j] = array [j + 1];array [j + 1] = temp; // 降序排列 ----------错在这里if (array [j] < array [j + 1]) {temp = array [j];array [j] = array [j + 1];array [j + 1] = temp; public static void main(String[] args) { int array [] = {88, 52, 9, 100, 98, 65}; // 冒泡排序 System.out.println("************************升序排列**************************"); for (int i = 0; i < array.length; ++i) { for (int j = 0; j < array.length - 1 - i; ++j) { // 升序排列 if (array [j] > array [j + 1]) { int temp = array [j];//循环里面的条件应该是判断J,而不是I,降序也是如此 array [j] = array [j + 1]; array [j + 1] = temp; } } } for (int i = 0; i < array.length; ++i) { System.out.print(array[i] + " "); } System.out.println(); System.out.println(); System.out.println("************************降序排列**************************"); for (int i = 0; i < array.length; i ++) { for (int j = 0; j < array.length - 1 - i; j ++) { // 降序排列 if (array [j] < array [j + 1]) { int temp = array [j]; array [j] = array [j + 1]; array [j + 1] = temp; } } } // 排序后输出数组 for (int i = 0; i < array.length; i ++) { System.out.print(array[i] + " "); } } public static void main(String[] args) { int array [] = {88, 52, 9, 100, 98, 65}; // 冒泡排序 System.out.println("************************升序排列**************************"); for (int i = 0; i < array.length; ++i) { for (int j = 0; j < array.length - 1 - i; ++j) { // 升序排列 if (array [j] > array [j + 1]) { int temp = array [j]; array [j] = array [j + 1]; array [j + 1] = temp; } } } for (int i = 0; i < array.length; ++i) { System.out.print(array[i] + " "); } System.out.println(); System.out.println(); System.out.println("************************降序排列**************************"); for (int i = 0; i < array.length; i ++) { for (int j = 0; j < array.length - 1 - i; j ++) { // 降序排列 if (array [j] < array [j + 1]) { int temp = array [j]; array [j] = array [j + 1]; array [j + 1] = temp; } } } // 排序后输出数组 for (int i = 0; i < array.length; i ++) { System.out.print(array[i] + " "); } } 其实升序和降序在代码上的唯一区别就是在第二层循环里面的判断方向不一样,其他都是一样的。伪代码帮助记忆: for (int i = 0; i < 数组长度; i ++) { for (int j = 0; j < 数组长度 - 1 - i; j ++) { if (array [j] < array [j + 1]) {//把小的往后面移动 -> 降序 //if (array [j] > array [j + 1]) {//把大的往后面移动 -> 升序 交换元素j和j+1 } } } 一个小问题.还是for循环问题 没有学历怎么办 一个小问题,望高手赐教 JAVA 调用linux系统命令创建用户密码的问题! 大侠,救命哦!如何设置环境变量使下面程序运行成功呀? 如何实现在服务器中定时操作?问题2???? SWT连接视频设备DVR-DVS;SWT与视频;SWT与摄像头 请帮忙看一下这段代码!有Notes消息。 调用java.sql.addBatch()老是出问题,怎么回事。 java什么编译工具最好? 如何将多个JDialog面板放入同一个进程中? java的学习
for (int j = 0; j < array.length - i - 1; ++j) {
// 升序排列
if (array [j] > array [j + 1]) {
temp = array [j];
array [j] = array [j + 1];
array [j + 1] = temp;
}
}
}
// 升序排列 ----------错在这里
if (array [j] > array [j + 1]) {
temp = array [j];
array [j] = array [j + 1];
array [j + 1] = temp;
// 降序排列 ----------错在这里
if (array [j] < array [j + 1]) {
temp = array [j];
array [j] = array [j + 1];
array [j + 1] = temp;
public static void main(String[] args) {
int array [] = {88, 52, 9, 100, 98, 65};
// 冒泡排序
System.out.println("************************升序排列**************************");
for (int i = 0; i < array.length; ++i) {
for (int j = 0; j < array.length - 1 - i; ++j) {
// 升序排列
if (array [j] > array [j + 1]) {
int temp = array [j];//循环里面的条件应该是判断J,而不是I,降序也是如此
array [j] = array [j + 1];
array [j + 1] = temp;
}
}
}
for (int i = 0; i < array.length; ++i) {
System.out.print(array[i] + " ");
}
System.out.println();
System.out.println();
System.out.println("************************降序排列**************************");
for (int i = 0; i < array.length; i ++) {
for (int j = 0; j < array.length - 1 - i; j ++) {
// 降序排列
if (array [j] < array [j + 1]) {
int temp = array [j];
array [j] = array [j + 1];
array [j + 1] = temp;
}
}
}
// 排序后输出数组
for (int i = 0; i < array.length; i ++) {
System.out.print(array[i] + " ");
}
}
public static void main(String[] args) {
int array [] = {88, 52, 9, 100, 98, 65};
// 冒泡排序
System.out.println("************************升序排列**************************");
for (int i = 0; i < array.length; ++i) {
for (int j = 0; j < array.length - 1 - i; ++j) {
// 升序排列
if (array [j] > array [j + 1]) {
int temp = array [j];
array [j] = array [j + 1];
array [j + 1] = temp;
}
}
}
for (int i = 0; i < array.length; ++i) {
System.out.print(array[i] + " ");
}
System.out.println();
System.out.println();
System.out.println("************************降序排列**************************");
for (int i = 0; i < array.length; i ++) {
for (int j = 0; j < array.length - 1 - i; j ++) {
// 降序排列
if (array [j] < array [j + 1]) {
int temp = array [j];
array [j] = array [j + 1];
array [j + 1] = temp;
}
}
}
// 排序后输出数组
for (int i = 0; i < array.length; i ++) {
System.out.print(array[i] + " ");
}
}
伪代码帮助记忆: for (int i = 0; i < 数组长度; i ++) {
for (int j = 0; j < 数组长度 - 1 - i; j ++) {
if (array [j] < array [j + 1]) {//把小的往后面移动 -> 降序
//if (array [j] > array [j + 1]) {//把大的往后面移动 -> 升序
交换元素j和j+1
}
}
}