java程序中,输入三个整型变量,让它们从小到大排列输出。3
发布网友
发布时间:2023-10-26 01:04
我来回答
共2个回答
热心网友
时间:2024-11-15 15:22
方法很多
下面这种快速选择排序比上面的快一半
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;
}
热心网友
时间:2024-11-15 15:22
可以设值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;i<n;i++){
a[i]=scanf.nextInt();
}
for(int i=1;i<n;i++){
for(int j=0;j<n-i;j++){
if(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;i<n;i++){
System.out.print(a[i]+" ");
}
}
}