数列排序

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]+" ");

 

以上是关于数列排序的主要内容,如果未能解决你的问题,请参考以下文章

数据结构:归并排序

斐波那契数列,冒泡排序,选择排序,数组去重

洛谷 P1327 数列排序

php常用的排序算法与二分法查找

数列排序 sort qsort

基础练习 数列排序