• Java面向对象编程 -6.7


    数组相关类库

    1. 数组排序:java.util.Arrays.sort(数组名称)
    2. 数组拷贝(把方法做了一些变形):System.arraycopy(源数组,源数组开始点,目标数组,目标数组开始点,拷贝长度)

    这些操作的支持是系统本身提供的,即:你都是可以在开发中使用的操作。

    class aUtils{
    	public static void Sort(int [] A,int Aindex,int [] B,int Bindex,int len) {
    		for(int i=0;i<len;i++) {
    			B[Bindex++] = A[Aindex++];
    		}
    	}
    }
    
    public class sag {
    	public static void main(String[] args) {
    		int []A = new int[]{1,2,3,4,5,6,7,8,9};
    		int []B = new int[] {11,22,33,44,55,66,77,88,99};
    		
    		aUtils.Sort(A, 5, B, 3, 3);
    		System.out.println(Arrays.toString(B));
    	}
    }
    >>>[11, 22, 33, 6, 7, 8, 77, 88, 99]
    

    如果要是自己去定义这种拷贝或者排序的方法就需要考虑所有数据类型 ,写重复 麻烦

    分析单次冒泡排序

    class utils{
    	public static void sort(int []arr) {
    		for(int i=0;i<arr.length-1;i++){
    			if(arr[i]>arr[i+1]) {
    				int temp = arr[i+1];
    				arr[i+1] = arr[i];
    				arr[i] = temp;
    			}
    		}
    		print(arr);
    	}
    	public static void print(int []arr) {
    		for(int i=0;i<arr.length;i++) {
    			System.out.print(arr[i] +" ");
    		}
    	}
    }
    
    public class hjf {
    	//冒泡排序
    	
    	public static void main(String[] args) {
    		int[] arr = new int[] {3,4,5,1,2};
    		utils.sort(arr);
    	}
    }
    >>>3 4 1 2 5 //最大值沉到最后
    

    最简单的修改

    class utils{
    	public static void sort(int []arr) {
    		for(int x=0;x<arr.length;x++) {//外层循环等于数组长度 一定能排位
    			for(int i=0;i<arr.length-1;i++){
    				if(arr[i]>arr[i+1]) {
    					int temp = arr[i+1];
    					arr[i+1] = arr[i];
    					arr[i] = temp;
    				}
    			}
    		}
    		print(arr);
    	}
    	public static void print(int []arr) {
    		for(int i=0;i<arr.length;i++) {
    			System.out.print(arr[i] +" ");
    		}
    	}
    }
    
    public class hjf {
    	//冒泡排序
    	
    	public static void main(String[] args) {
    		int[] arr = new int[] {3,4,5,1,2};
    		utils.sort(arr);
    	}
    }
    >>>1 2 3 4 5 
    

    优化 内存循环可以减少次数

    class utils{
    	public static void sort(int []arr) {
    		for(int x=0;x<arr.length;x++) {
    			for(int i=0;i<arr.length-1-x;i++){
    				if(arr[i]>arr[i+1]) {
    					int temp = arr[i+1];
    					arr[i+1] = arr[i];
    					arr[i] = temp;
    				}
    			}
    		}
    		print(arr);
    	}
    	public static void print(int []arr) {
    		for(int i=0;i<arr.length;i++) {
    			System.out.print(arr[i] +" ");
    		}
    	}
    }
    
    public class hjf {
    	//冒泡排序
    	
    	public static void main(String[] args) {
    		int[] arr = new int[] {3,4,5,1,2};
    		utils.sort(arr);
    	}
    }
    
    
  • 相关阅读:
    2015/12/26 十六、 八 、二 进制转十进制
    2015/12/25 ① 图灵测试 ② 安装jdk出现的问题 ③ 配置环境变量
    java如何产生随机数
    二分查找法
    冒泡排序法
    计算阶乘
    九九乘法小练习
    数组循环语句练习
    经典循环例题练习
    如何用循环语句输出一个三角形
  • 原文地址:https://www.cnblogs.com/sakura579/p/12374525.html
Copyright © 2020-2023  润新知