摘要:反轉排序是將原先已經排序好了的重新排序,是原來的數組元素的順序反轉過來。假設原來的數組順序是{6,5,4,3,2,1},反轉之后的順序就是{1,2,3,4,5,6}.這個排序的算法不是很難,代碼量也不是很多。
- 排序原理:將第一個元素與最后一個元素調換位置,第二個元素和倒數第二個元素調換位置,然后依次類推,直到將所有的數組元素都調換位置。反轉排序不會按升序或者降序排序。反轉排序是對數組兩邊的元素進行替換,所有只需循環數組長度的半數次數。
- 適宜人群:有一定Java SE基礎,明白Java的數據類型,數組的定義、初始化以及常用數組的方法,還有Java的循環操作。
- 前期准備:最好有一個開發工具比如說:eclipse或者myeclipse都可以,當然你使用DOS系統進行編譯運行都可以,只不過改bug會麻煩一點。
- 反轉排序的應用:其實很多排序的算法並不一定都會用到,但是這些算法能鍛煉我們的邏輯思維能力。這個算法可以運用到我們的貪吃蛇游戲當中,頭部可以當尾部,尾部可以當頭部來使用。
- 算法實現:下面來介紹一下反轉排序的具體用法。
package liuenci.cn.package_3; public class ReverseSort { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //創建一個數組 int[] array={100,90,80,70,60,50,40,30,20,10,0}; ReverseSort sorter=new ReverseSort(); //調用反轉排序對象的方法將數組反轉 sorter.sort(array); } public void sort(int[] array){ System.out.print("數組原來內容:"); showArray(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; } System.out.print("數組反轉后內容:"); showArray(array); } public void showArray(int[] array){ for(int i:array){ System.out.print(" "+i); } System.out.println(); } }
