本文目錄一覽:
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 數組順序排列
首先,API裏面寫了: Sorts the specified array of ints into ascending numerical order.
就是這是個升序!
其次,你這個運行應該不會報錯,輸出的會是 數組地址,因為數組在java裏面是一個對象,如果要看排序的結果,需要遍歷下:
比如
for(int i:arr){
System.out.println(i);
}
在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數組排序
//原理:每次都找到當次最大的數,按大小順序依次放入數組相應位置
//比如:第一次先找到最大的數並記下其位置,如果其不在數組第一位,
//則將其與第一位交換,使最大數置於第一位
//第二次再循環查找第二大的數並記下其位置,如果其不在數組第二位,
//則將其與第二位交換,使最大數置於第二位
//依次類推…………………………………..
//第i次再循環查找第i大的數並記下其位置,如果其不在數組第 i位,
//則將其與第 i位交換,使最大數置於第 i位
public class SelectSort {
public static void main(String[] args) {
int[] a = {25,15,42,16,12,36};
int max = 0;
int tmp = 0;
for(int i=0;ia.length;i++){
max = i;//
/**查找第 i大的數,直到記下第 i大數的位置***/
for(int j=i+1;ja.length;j++){
if(a[max]a[j])
max = j;//記下較大數位置,再次比較,直到最大
}
/***如果第 i大數的位置不在 i,則交換****/
if(i!=max){
tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}
}
for(int i=0;ia.length;i++)
System.out.print(a[i]+” “);
}
}
Java數組排序
//第一種
int[]a ={5,3,2,4,6,1,8,7,9};
Arrays.sort(a);
//冒泡排序
int[]a ={5,3,2,4,6,1,8,7,9};
int temp=0;
for(int i=0;ia.length-1;i++){
for(int j=0;ja.length-1-i;j++){
if(a[j]a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
//選擇排序
int[]args1 ={5,3,2,4,6,1,8,7,9};
for (int i=0;iargs1.length-1 ;i++ ){
int min=i;
for (int j=i+1;jargs1.length ;j++ ){
if (args1[min]args1[j]){
min=j;
}
}
if (min!=i){
int temp=args1[i];
args1[i]=args1[min];
args1[min]=temp;
}
}
//插入排序
int[]args1 ={5,3,2,4,6,1,8,7,9};
for(int i=1;iargs1.length;i++){
for(int j=i;j0;j–){
if (args1[j]args1[j-1]){
int temp=args1[j-1];
args1[j-1]=args1[j];
args1[j]=temp;
}else break;
}
}
原創文章,作者:EBQJ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/139375.html