数列排序
Posted Fan-notehub
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数列排序相关的知识,希望对你有一定的参考价值。
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
import java.util.*; public class Main public static void main(String[] args) Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); int[] arr = new int[n]; for (int i = 0; i < arr.length; i++) //存数 arr[i] = scanner.nextInt(); //排列 //冒泡 for (int m = 0; m < arr.length; m++) for (int j = 1; j < arr.length; j++) if (arr[j-1] > arr[j]) int temporary = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temporary; for (int i = 0; i < arr.length; i++) System.out.print(arr[i]+" ");
第一次提交时我犯了一个错误,将输出语句写道了排序的最外层循环的里面导致错误
for (int m = 0; m < arr.length; m++) for (int j = 1; j < arr.length; j++) if (arr[j-1] > arr[j]) int temporary = arr[j]; arr[j] = arr[j-1]; arr[j-1] = temporary;
System.out.print(arr[i]+" ");
这里的循环是从前向后比较的,每一次if后将较大的数字往后放,此时一轮for循环后是将数列中最大的数字放在了最后,第一位并没有排好。
如果要求输出从大到小的话,此时可以在每次内层for循环完之后输出第arr.length-m个的值
调用JAVA工具类
Arrays.sort(arr); for (int i = 0; i < arr.length; i++) System.out.print(arr[i]+" ");
以上是关于数列排序的主要内容,如果未能解决你的问题,请参考以下文章