對java數組排序的補充,java對數組進行升序排序

本文目錄一覽:

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+”,”);

}

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/156897.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-18 01:58
下一篇 2024-11-18 01:58

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是Python中一個強大的數學庫,其中提供了非常豐富的數學函…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python返回數組:一次性搞定多種數據類型

    Python是一種多用途的高級編程語言,具有高效性和易讀性的特點,因此被廣泛應用於數據科學、機器學習、Web開發、遊戲開發等各個領域。其中,Python返回數組也是一項非常強大的功…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論