public class Sort {
public static void main(String[] args) {
Scanner input = new Scanner(System.in)// 实例控制台输入类
int count = 0// 想要输多少个数字
int temp = 0// 临时变量
System.out.print("想要输入多少个数字:")
count = input.nextInt()// 输入
int[] numberArray = new int[count]// 用 已经赋好值的 count 实例数组
for (int i = 0i <numberArray.lengthi++) { // 循环输值
System.out.print("请输入第[" + (i + 1) + "]个数字:")
numberArray[i] = input.nextInt()
}
System.out.println("排序前:")
for(int i = 0i <numberArray.lengthi++){ // 输出
System.out.println("第[" + (i + 1) + "]个数字:"+numberArray[i])
}
/*
* 冒泡排序
*/
for (int i = 0i <numberArray.lengthi++) {
for (int n = 0n <numberArray.lengthn++) {
if (numberArray[n] >numberArray[i]) {
temp = numberArray[n]
numberArray[n] = numberArray[i]
numberArray[i] = temp
}
}
}
System.out.println("排序后:")
for(int i = 0i <numberArray.lengthi++){ // 输出
System.out.println("第[" + (i + 1) + "]个数字:"+numberArray[i])
}
}
}
java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:
import java.util.ArrayListimport java.util.Arrays
import java.util.HashMap
import java.util.List
public class ceshi {
public static void main(String[] args) {
int n = 5
int[] a = { 8, 5, 4, 6, 2, 1, 7, 9, 3 }
HashMap map = new HashMap()
for (int i = 0 i < a.length i++) {
map.put(a[i], i) // 将值和下标存入Map
}
// 排列
List list = new ArrayList()
Arrays.sort(a) // 升序排列
for (int i = 0 i < a.length i++) {
list.add(a[i])
}
for (Object object : list) {
System.out.print(object + ",")
}
System.out.println()
// 查找原始下标
for (int i = 0 i < n i++) {
System.out.print(map.get(a[i]) + ",")
}
}
}
运行结果如下: