溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么將Java數組進行排序

發布時間:2022-02-21 16:41:22 來源:億速云 閱讀:159 作者:iii 欄目:開發技術

本篇內容介紹了“怎么將Java數組進行排序”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Arrays.sort()

Arrays.sort()排序方法是在Java當中最簡單,也是最常用的排序方法

int[] arr1 = {21,16,34,5,20};
Arrays.sort(arr1);
for(int i=0;i<arr1.length;i++){
    System.out.print(arr1[i]+" ");
}

輸出結果

5 16 20 21 34

通過輸出結果可以知道,Arrays.sort()排序方法默認將數組進行升序排序。

冒泡排序

顧名思義,就像泡泡一樣,比較輕地就浮在上面,較重的那個就會往下沉。那么如何知道哪個輕,哪個重?也就是比較數組里的數字大小。就要比較相鄰的兩個數字,如果前者比后者大,那么兩者交換位置,較大的那位繼續跟下一位比較;如果后者大,那么位置不會更換,大的那一位繼續和下一位進行比較。

package simple_sort;public class Dome_sort {	/**	 * @param args	 */	public static void main(String[] args) {		// TODO Auto-generated method stub		int[] numbers = new int[]{1,9,5,6,7};		int i,j;		for(i =0;i<numbers.length;i++){			for(j=0;j<numbers.length-1;j++)			{				if(numbers[j]>numbers[j+1])				{					int temp= numbers[j];					numbers[j]=numbers[j+1];					numbers[j+1]=temp;				}			}		}			System.out.println("排序后的結果");			for(i=0;i<numbers.length;i++)				System.out.print(numbers[i]+" ");	}}

輸出結果

1 5 6 7 9

選擇排序

選擇排序原理就是,遍歷元素,找到一個最小或是最大值,然后把這個值放在首位,在剩下的所有元素中繼續挑選最小和最大的值。如此往復,直到排序完成。

public class SortDemo {
 
    public static void main(String[] args) {
        int[] arr = new int[] { 5, 3, 6, 2, 10, 2, 1 };
        selectSort(arr);
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
 
    public static void selectSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            int minIndex = i; // 用來記錄最小值的索引位置,默認值為i
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j; // 遍歷 i+1~length 的值,找到其中最小值的位置
                }
            }
            // 交換當前索引 i 和最小值索引 minIndex 兩處的值
            if (i != minIndex) {
                int temp = arr[i];
                arr[i] = arr[minIndex];
                arr[minIndex] = temp;
            }
            // 執行完一次循環,當前索引 i 處的值為最小值,直到循環結束即可完成排序
        }
    }
 
}

輸出結果

1 2 2 3 5 6 10

反轉排序

反轉排序就是把原數組的順序反過來輸出。它的思想也很簡單,就是把數組的第一位和最后一位進行交換;第二位和倒數第二位進行交換...以此類推,直到反轉結束。

public class ReverseSort {
 
	public static void main(String[] args) {
		int arr[]= {10,20,30,40,50,60};
		ReverseSort sort=new ReverseSort();
		sort.sort(arr);
	}
	public void sort(int[]array) {
		int temp;
		int len=array.length;
		for (int i = 0; i < len/2; i++) {
			temp=array[i];
			array[i]=array[len-1-i];
			array[len-1-i]=temp;
		}
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
	}
}

結果輸出

60 50 40 30 20 10

直接插入排序

直接插入排序原理就是將定義的數組,從第二個到最后一個元素都依次作為插入數據。分別和它們各自前面的值進行比較,如果比較比前者小,則直接插入在前者的前面。直到比較到比插入數據的值要小,或者已經到了第一個位置,則停止比較插入。

public class InsertAlgorithm {
    public static void insertAlgorithm(int r[]){
        for(int i=1;i<r.length;i++){//從數組的第二個元素到數組的最后一個元素依次取出來插入到它前面的數的合適位置中
            int insertNumber=r[i];//將要插入的數據賦值給變量insertNumber
            int j=i-1;
            while(j>=0&&insertNumber<r[j]){//要插入的元素小于第j個元素
                r[j+1]=r[j];//第j個元素向后移動
                --j;//比較插入數據和r[j]的大小,直到j為0
            }
            r[j+1]=insertNumber;//退出while循環,即插入的數據已經不小于r[j]了,這時插入數據插入到r[j]后面
        }
        for(int a:r){
            System.out.print(a+" ");
        }
    }
 
    public static void main(String args[]){
        int a[]={52,39,67,95,70,8,25};
        insertAlgorithm(a);
     }
}

輸出結果

8 25 39 52 67 70 95

“怎么將Java數組進行排序”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女