给你n个数,让你将它们排序,有两种排序的方式,当m=0时,升序排列,当m=1时,降序排列
运行效果如下:
代码如下:
import java.util.Scanner;
public class Test {
public static void sort(int[] arr,int flag){
int i,j,t;
for(i=0;i<arr.length-1;i++){
for(j=0;j<arr.length-1-i;j++){
if( (flag ==0 && arr[j]>arr[j+1]) || (flag==1 && arr[j]<arr[j+1]) ){
t = arr[j];
arr[j] = arr[j+1];
arr[j+1] = t;
}
}
}
}
public static void main(String[] args ) {
System.out.print("please input n:");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
System.out.println("请输入"+n+"个数:");
for(int i=0;i<n;i++)
arr[i] = sc.nextInt();
//请输入排序方式
System.out.println("请选择排序方式:0升序,1降序");
int flag = sc.nextInt();
sort(arr,flag);
//输出
System.out.println("排序后的元素");
for(int i=0;i<n;i++)
System.out.print(arr[i]+" ");
}
}
25行if(a[j]>a[j+1]){就是升序排序,改为if(a[j]<a[j+1]){就是降序排序:
public class BubbleSort {
int a[];
public int[] getA(){
return a;
}
public BubbleSort() {
a = new int[]{8,19,2,3,100,99,1000,888,-1,0};
}
public BubbleSort(int a[]) {
this.a = a;
}
//冒泡排序
public void sort(){
int t=0,kk=0,len=a.length;
//外循环控制循环的趟数
for(int i=0;i<len-1;i++){
//内循环控制每一趟的次数
kk=0;
for(int j=0;j<len-i-1;j++){
//打印每循环一次后数据的变化
kk++;
// System.out.println("第"+(i+1)+"趟的第"+kk+"次");
if(a[j]>a[j+1]){
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
// print();
}
}
System.out.println("排序后顺序如下:");
print();
}
public void print(){
for (int e : a) {
System.out.print(e+"\t");
}
System.out.println("");
}
public static void main(String[] args) {
BubbleSort bubbleSort = new BubbleSort();
System.out.println("排序前顺序如下:");
bubbleSort.print();
//排序
long start = System.currentTimeMillis();
bubbleSort.sort();
long end = System.currentTimeMillis()-start;
System.out.println("排序用时:"+end +"毫秒");
}
}
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//输入个数n
int n = scanner.nextInt();
//输入具体的n个数
List<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
list.add(scanner.nextInt());
}
Test test = new Test();
//升序排列
test.sort(list, 0);
System.out.println(list);
//降序排列
test.sort(list, 1);
System.out.println(list);
}
/**
* 排序
*
* @param list 要排序的数据
* @param m 当m=0时,升序排列,当m=1时,降序排列
*/
public void sort(List<Integer> list, int m) {
switch (m) {
case 0://升序
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
break;
case 1://降序
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2.compareTo(o1);
}
});
break;
default://不变
break;
}
}
}