zoukankan      html  css  js  c++  java
  • 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);
    	}
    }
    
    
  • 相关阅读:
    caffe学习笔记(1)安装
    windows下遍历文件夹
    图像处理之OpenCV
    OpenCV的安装和使用
    使用cpplint检测代码规范
    图像处理之原理
    Python 在cmd中import模块成功,但是在jupyter notebook中No module xxx found
    Win10上使用VS2015编译Caffe2
    Win10, VS2017环境下OpenCV3.4.2的配置
    C++ main函数的参数
  • 原文地址:https://www.cnblogs.com/sakura579/p/12374525.html
Copyright © 2011-2022 走看看