问题描述
我正在实现冒泡排序,我想到了:-
import java.io.*;
import java.util.Arrays;
public class BubbleSort550 {
public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
String[] temp = br.readLine().split("\\s+");
int[] arr = new int[temp.length];
for(int i = 0; i < arr.length; i++){
arr[i] = Integer.parseInt(temp[i]);
}
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr.length - i - 1; j++){
if(arr[j] > arr[j+1]){
int inTemp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = inTemp;
}
}
}
System.out.println(Arrays.toString(arr));
}catch(IOException ioe){
ioe.printStackTrace();
}
}
}
这是Bubble排序,如果我错了,就我所知,请纠正我。
但是接下来的那件事呢,至少在所有情况下,按照我的测试,这也行得通。
import java.io.*;
import java.util.Arrays;
public class BubbleSort550 {
public static void main(String[] args){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
String[] temp = br.readLine().split("\\s+");
int[] arr = new int[temp.length];
for(int i = 0; i < arr.length; i++){
arr[i] = Integer.parseInt(temp[i]);
}
for(int i = 0; i < arr.length; i++){
for(int j = i+1; j < arr.length; j++){
if(arr[i] > arr[j]){
int inTemp = arr[j];
arr[j] = arr[i];
arr[i] = inTemp;
}
}
}
System.out.println(Arrays.toString(arr));
}catch(IOException ioe){
ioe.printStackTrace();
}
}
}
我觉得这是正确的,在我看来,这不是冒泡排序,因为冒泡排序的基本前提是每次通过都应冒出最大的数目,而在第二种实现中不会发生这种情况,我不知道上面的实现是哪种标准的排序算法。好吧,我完全不确定第二个答案是否正确。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)