如何解决这是气泡排序变化还是完全不同?
我正在实现冒泡排序,我想到了:-
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 举报,一经查实,本站将立刻删除。