java程序中,输入三个整型变量,让它们从小到大排列输出。

2024年11月16日 06:55
有2个网友回答
网友(1):

方法很多
下面这种快速选择排序比上面的快一半

public void selectSort(int[] array, String sortType) {
/**
* 选择排序(sortType排序类型esc顺序desc倒序) 比较次数O(n^2) n^2/2 交换次数O(n),n
*/
if (sortType.equals("esc")) {
for (int i = 0; i < array.length - 1; i++) {
int minPos = minmumPosition(i);
swap(minPos, i);
}
} else if (sortType.equals("desc")) {
for (int i = 0; i < array.length - 1; i++) {
int maxPos = maxmumPosition(i);
swap(maxPos, i);
}
} else {
System.out.println("输入类型有误");
}
}

public void swap(int a, int b) {
int temp = array[a];
array[a] = array[b];
array[b] = temp;
}

public int minmumPosition(int from) {
// 最小元素
int minPos = from;
for (int i = from + 1; i < array.length; i++) {
if (array[i] < array[minPos])
minPos = i;
}
return minPos;
}

public int maxmumPosition(int from) {
// 最大元素
int maxPos = from;
for (int i = from + 1; i < array.length; i++)
if (array[i] > array[maxPos])
maxPos = i;
return maxPos;
}

网友(2):

可以设值n的值,是比较的个数,用的冒泡排序法import java.util.*;public class Sort {public static void main(String[] args){
Scanner scanf=new Scanner(System.in);
int n=3; //比较的个数
int[] a=new int[n];
System.out.println("请输入"+n+"个整数");
for(int i=0;ia[i]=scanf.nextInt();
}
for(int i=1;ifor(int j=0;jif(a[j]>a[j+1]){
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
System.out.println("从大到小排列:");
for(int i=0;iSystem.out.print(a[i]+" ");
}

}
}