• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Java面向對象
    Java異常
    Java數組
    Java常用類
    Java集合
    Java IO流
    Java線程
    Java反射
    Socket編程
    Java注解開發
    Java GoF設計模式
    HashMap
    Java內存模型
    Java線性表

    Java數組算法

     

     

    Java冒泡排序算法

     

    package com.wkcto.chapter03.demo03;
    
    import java.util.Arrays;
    
    /**
     * 冒泡排序,
     * 	由小到大
     * 	從前向后兩兩比較,如果前面的數大于后面的數就交換
     * 	如果有n個數,需要比較n-1輪
     * @author 蛙課網
     *
     */
    public class Test02 {
    
    	public static void main(String[] args) {
    		int [] data = {56,23,89,5,99,32};
    		System.out.println( Arrays.toString(data));
    		System.out.println("------------------------------");
    		
    		for( int x = 0 ; x < data.length - 1; x++){
    			//第x輪, 把第x大的交換到最后
    			for(int i = 0 ; i < data.length-1 - x ; i++){
    				if ( data[i] > data[i+1] ) {
    					int t = data[i];
    					data[i] = data[i+1];
    					data[i+1] = t;						
    				}
    				System.out.println( Arrays.toString(data));
    			}
    			System.out.println("------------------------------");
    		}
    		
    	}
    
    }

     

     

    Java選擇排序算法

     

     

    package com.wkcto.chapter03.demo03;
    
    import java.util.Arrays;
    /**
     * 選擇排序
     * 	由小到大
     * @author 蛙課網
     *
     */
    public class Test04 {
    
    	public static void main(String[] args) {
    		int [] data = {56,23,89,5,99,32};
    		System.out.println( Arrays.toString(data));
    		System.out.println("------------------------------");
    		
    		for(int x = 0 ; x < data.length-1 ; x++){
    			//1) 選擇最小的,交換到x位置
    			int min = x ; 		//保存最小元素的下標,假設x元素最小
    			//找當前最小元素的下標
    			for( int i = x+1 ;  i< data.length; i++){
    				if (data[i] < data[min]) {
    					min = i;
    				}
    			}
    			//把當前最小元素交換到x位置
    			if ( min != x ) {
    				int t = data[x]	;
    				data[x] = data[min];
    				data[min] = t;
    			}
    			System.out.println( Arrays.toString(data));
    		}
    			
    	}
    
    }

     

     

    Java二分查找算法

     

    也叫折半查找算法

     

    前提是數組已經由小到大排序, 在比較時,始終和中間的元素比較, 如果要查找的數比中間的數小, 說明在左一半; 如果要查找的數比中間的數大, 說明在右一半

     

    ● 要查找的元素就 是中間的元素

     

     

    ●  需要多次查找,才能找到元素

     

     

    ● 數組中不存在該元素

     

     

    package com.wkcto.chapter03.demo03;
    /**
     * 二分查找算法
     * 	
     * @author 蛙課網
     *
     */
    public class Test05 {
    
    	public static void main(String[] args) {
    		int [] data = {5, 23, 32, 56, 89, 99};
    		
    		System.out.println( binarySearch(data, 5));
    		System.out.println( binarySearch(data, 99));
    		System.out.println( binarySearch(data, 23));
    		System.out.println( binarySearch(data, 66));
    		System.out.println( binarySearch(data, -88));
    	}
    
    	//定義方法, 實現二分查找
    	//如果myarray數組中存在key元素,返回key元素在數組中的索引值, 如果不存在key元素返回-1
    	public static int binarySearch(int [] myarray, int key) {
    		int from = 0 ;
    		int end = myarray.length-1;
    		int mid = (from + end) /2;
    		
    		while( from <= end ){
    			if ( myarray[mid] == key ) {
    				return mid;
    			}else if ( myarray[mid] < key) {  	//查找的元素比中間的數大, 在右一半
    				from = mid + 1 ;
    				mid = (from + end) /2;
    			}else {								//查找的元素比中間的數小, 在左一半
    				end = mid - 1;
    				mid = (from + end) /2;
    			}
    		}
    		
    		return -1;
    	}
    }

     

     

    總結:

     

    掌握數組的定義

     

    掌握數組的訪問

     

    掌握數組的遍歷

     

    掌握數組的靜態初始化

     

    掌握作為方法的返回值類型,方法的參數

     

    了解main方法的參數

     

    掌握可變長參數

     

    掌握數組的擴容

     

    理解數據的特點

     

    掌握對象數組

     

    掌握二維數組的定義, 元素的賦值, 及存儲數據的遍歷

     

    掌握Arrays工具類的基本使用

     

    在面試前掌握數組的相關算法

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏