1. 程式人生 > >如何用Java實現反轉排序

如何用Java實現反轉排序

摘要:反轉排序是將原先已經排序好了的重新排序,是原來的陣列元素的順序反轉過來。假設原來的陣列順序是{6,5,4,3,2,1},反轉之後的順序就是{1,2,3,4,5,6}.這個排序的演算法不是很難,程式碼量也不是很多。

  1. 排序原理:將第一個元素與最後一個元素調換位置,第二個元素和倒數第二個元素調換位置,然後依次類推,直到將所有的陣列元素都調換位置。反轉排序不會按升序或者降序排序。反轉排序是對陣列兩邊的元素進行替換,所有隻需迴圈陣列長度的半數次數。
  2. 適宜人群:有一定Java SE基礎,明白Java的資料型別,陣列的定義、初始化以及常用陣列的方法,還有Java的迴圈操作。
  3. 前期準備:最好有一個開發工具比如說:eclipse或者myeclipse都可以,當然你使用DOS系統進行編譯執行都可以,只不過改bug會麻煩一點。
  4. 反轉排序的應用:其實很多排序的演算法並不一定都會用到,但是這些演算法能鍛鍊我們的邏輯思維能力。這個演算法可以運用到我們的貪吃蛇遊戲當中,頭部可以當尾部,尾部可以當頭部來使用。
  5. 演算法實現:下面來介紹一下反轉排序的具體用法。

 

 1 package liuenci.cn.package_3;
 2 
 3 public class ReverseSort {
 4 
 5     /**
 6      * @param args
 7      */
 8     public static void main(String[] args) {
 9         //
TODO Auto-generated method stub 10 //建立一個數組 11 int[] array={100,90,80,70,60,50,40,30,20,10,0}; 12 ReverseSort sorter=new ReverseSort(); 13 //呼叫反轉排序物件的方法將陣列反轉 14 sorter.sort(array); 15 } 16 public void sort(int[] array){ 17 System.out.print("陣列原來內容:"); 18 showArray(array);//
排序前的陣列值 19 int temp; 20 int len=array.length; 21 for(int i=0;i<len/2;i++){ 22 temp=array[i]; 23 array[i]=array[len-1-i]; 24 array[len-1-i]=temp; 25 } 26 System.out.print("陣列反轉後內容:"); 27 showArray(array); 28 } 29 public void showArray(int[] array){ 30 for(int i:array){ 31 System.out.print(" "+i); 32 } 33 System.out.println(); 34 } 35 }