1. 程式人生 > >java演算法簡單複習

java演算法簡單複習

氣泡排序:

原理:和相鄰的數對比,然後排序,最後一趟會將最小或最大排到邊邊。

例子:

    int []numbers={4,5,2,7};
   int temp;
     for(int i=0;i<numbers.length;i++){
         for( int j=i;j<numbers.length;j++){
             if(numbers[i]>numbers[j]){
                 temp=numbers[i];
                 numbers[i]=numbers[j];
                 numbers[j]=temp;
             }
            
         }
             
     }   for(int z=0;z<numbers.length;z++){
           System.out.println(numbers[z]);
       }
    }
  

選擇排序:

原理:每一趟從待排序的資料中選擇最小(或最大)的一個數據作為首資料

例子:

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int []numbers={4,5,2,7,9,6};
           int temp;
           int k;
             for(int i=0;i<numbers.length-1;i++){
                 k=i;
                 for(int j=i+1;j<numbers.length;j++){
                     if(numbers[j]<numbers[k]){
                         k=j;
                         }
                 }
                     
                         temp=numbers[i];
                         numbers[i]=numbers[k];
                         numbers[k]=temp;
                     
                    
                 }
                     
            
        

    for(int z=0;z<numbers.length;z++){
           System.out.println(numbers[z]);
       }

}
}

插入排序:

原理:把n個待排序的資料看成一個有序表和一個無序表,有序表一開始有1個數據,無序表中有n-1個數據;排序過程即每次從無序表中取出第一個資料來源,將它插入到有序表中,使之成為新的有序表,重複n-1次完成整個排序過程。

例子:

    int []numbers={4,5,2,7,9,6};
           int temp;
        for(int i = 1; i<numbers.length; i++){
           temp = numbers[i]; //temp是作為插入有序表的數
           int j = i-1;
            while(j>=0 && numbers[j]>temp){//資料後移
                numbers[j+1] = numbers[j];
                j--;
            }
            numbers[j+1] = temp;//插入temp
        }
        
        
        for(int z=0;z<numbers.length;z++){//迴圈列印資料
            System.out.println(numbers[z]);
        }
    }

}