首页 > 编程知识 正文

对java数组排序的补充,java对数组进行升序排序

时间:2023-12-28 21:11:03 阅读:329155 作者:UCUL

本文目录一览:

java 数组升序排列

 public static void main(String args[])

    { 

       try

       {

       int i, sum=0;

       FileWriter f_out=new FileWriter("data.txt");

       System.out.println("请输入学生的个数");

       int n=new Scanner(System.in).nextInt();

       int s[]=new int [n];

       for( i=0;in;i++)

         {

          System.out.println("请输入第"+(i+1)+"个学生的成绩");

            s[i]=new Scanner(System.in).nextInt();

            if (s[i]0||s[i]100)

            {            

            System.out.println("输入错误,请重新输入");           

            s[i]=new Scanner(System.in).nextInt();

            }

            

            

         }

       Arrays.sort(s);

       for(int j=0;jn;j++){

       f_out.write(s[j]+"n");  

       }

f_out.close();

         FileReader f_in=new FileReader("data.txt");

         for(int c=f_in.read();c!=-1;c=f_in.read())

         System.out.print((char)c+"  ");

       

         f_in.close();

       }    

        catch(IOException e)

        {

         System.err.println(e);

         e.printStackTrace();

        }      

    }

这样应该就好了。

在java编程中如何对数组进行排序,并输出排序后的数组及原数组下标值

java变成对数组进行排序可以使用ArraySort方法,保存源数组下标值可以存入map中,如下代码:

import java.util.ArrayList;

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

}

}

}

运行结果如下:

java怎么让数组的数字从大到小排序?

将数字从大到小排序的方法:

例如简一点的冒泡排序,将第一个数字和后面的数字逐个比较大小,如果小于,则互换位置,大于则不动。此时,第一个数为数组中的最大数。然后再将第二个数与后面的数逐个比较,以次类推。

示例代码如下: 

public class Test { 

public static void main(String[] args) { 

int [] array = {12,3,1254,235,435,236,25,34,23}; 

int temp; 

for (int i = 0; i  array.length; i++) { 

for (int j = i+1; j  array.length; j++) { 

if (array[i]  array[j]) { 

temp = array[i]; 

array[i] = array[j]; 

array[j] = temp; // 两个数交换位置 

for (int i = 0; i  array.length; i++) { 

System.out.print(array[i]+"  "); 

}

数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。

Java 语言中提供的数组是用来存储固定大小的同类型元素。

你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99

扩展资料

Java中利用数组进行数字排序一般有4种方法:

1、选择排序是先将数组中的第一个数作为最大或最小数,然后通过循环比较交换最大数或最小数与一轮比较中第一个数位置进行排序。

2、冒泡排序也是先将数组中的第一个数作为最大或最小数,循环比较相邻两个数的大小,满足条件就互换位置,将最大数或最小数沉底。

3、快速排序法主要是运用Arrays类中的Arrays.sort方法()实现。

4、插入排序是选择一个数组中的数据,通过不断的插入比较最后进行排序。

JAVA中对数组排序除了冒泡和直接遍历外还有没更好的方法?

初级的排序方法有泡泡,插入和选择.高级的排序方法还有堆排序,希尔排序法,快速排序法. 快速排序法(quick sort)是目前所公认最快的排序方法之一(视解题的对象而定),虽然快速排序法在最差状况下可以达O(n2),但是在多数的情况下,快速排序法的效率表现是相当不错的。 快速排序法的基本精神是在数列中找出适当的轴心,然后将数列一分为二,分别对左边与右边数列进行排序,而影响快速排序法效率的正是轴心的选择。 1. 将最左边的数设定为轴,并记录其值为 s 循环处理: 1. 令索引 i 从数列左方往右方找,直到找到大于 s 的数 2. 令索引 j 从数列左右方往左方找,直到找到小于 s 的数 3. 如果 i = j,则离开循环 4. 如果 i j,则交换索引i与j两处的值 5. 将左侧的轴与 j 进行交换 6. 对轴左边进行递归 7. 对轴右边进行递归 透过以下算法,则轴左边的值都会小于s,轴右边的值都会大于s,如此再对轴左右两边进行递归,就可以对完成排序的目的,例如下面的实例,*表示要交换的数,[]表示轴: [41] 24 76* 11 45 64 21 69 19 36* [41] 24 36 11 45* 64 21 69 19* 76 [41] 24 36 11 19 64* 21* 69 45 76 [41] 24 36 11 19 21 64 69 45 76 21 24 36 11 19 [41] 64 69 45 76 在上面的例子中,41左边的值都比它小,而右边的值都比它大,如此左右再进行递归至排序完成。 public class QuickSort { public static void sort(int[] number) { sort(number, 0, number.length-1); } private static void sort(int[] number, int left, int right) { if(left right) { int s = number[left]; int i = left; int j = right + 1; while(true) { // 向右找 while(i + 1 number.length number[++i] s) ; // 向左找 while(j -1 -1 number[--j] s) ; if(i = j) break; swap(number, i, j); } number[left] = number[j]; number[j] = s; sort(number, left, j-1); // 對左邊進行遞迴 sort(number, j+1, right); // 對右邊進行遞迴 } } private static void swap(int[] number, int i, int j) { int t; t = number[i]; number[i] = number[j]; number[j] = t; }}

java怎么排序数组的数据?

java默认为升序排序

如下为api:

public static void sort(int[] a)

对指定的 int 型数组按数字升序进行排序。该排序算法是一个经过调优的快速排序法,改编自 Jon L. Bentley 和 M. Douglas

McIlroy 合著的 Engineering a Sort Function", Software-Practice and Experience Vol.

23(11) P. 1249-1265 (November 1993)。此算法在许多数据集上提供 n*log(n) 性能,这导致其他快速排序会降低二次型性能。

参数:

a - 要排序的数组

JAVA静态方法对数组排序

用了冒泡排序方法

public class MySort {

public static void sort(int [] a){

for(int i=0;ia.length;i++){

for(int j = i+1;ja.length;j++){

if(a[i]a[j]){

int temp = a[i];

a[i] = a[j];

a[j] = temp;

}

}

}

}

public static void sort(double [] d){

for(int i=0;id.length;i++){

for(int j = i;jd.length;j++){

if(d[i]d[j]){

double temp = d[i];

d[i] = d[j];

d[j] = temp;

}

}

}

}

public static void main(String[] args) {

int a [] = {3,2,5,1,6,7,4};

double d [] = {3.0,2.0,5.0,1.0,6.0,7.0,4.0};

sort(a);

for(int i:a)

System.out.print(i+",");

System.out.println("");

sort(d);

for(double i:d)

System.out.print(i+",");

}

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。