zoukankan      html  css  js  c++  java
  • java数据结构-排序算法-前边算法整合

    package com.fu;

    import java.util.Arrays;

    /**
    * @auther 付强
    * @date 2020/2/13 - 10:27
    */
    public class myArray1 {
    //用于存储数据的数组
    private int[] elements;
    public myArray1(){
    elements=new int[0];
    }

    //获取数组长度的方法
    public int size(){
    return elements.length;
    }
    //往数组的末尾添加一个元素
    public void add(int element){
    //创建一个新的数组
    int[] newArr=new int[elements.length+1];
    //把原数组中的元素复制到新的数组中
    for (int i = 0; i < elements.length; i++) {
    newArr[i]=elements[i];
    }
    //把添加的元素放入新数组中的
    newArr[elements.length]=element;
    //使用新数组替换就数组
    elements=newArr;
    }
    public void add(int index,int element){
    //创建一个新的数组
    int[] newArr=new int[elements.length+1];
    //把原数组中的元素素质到新的数组中
    for (int i = 0; i < elements.length; i++) {
    if(i<index){
    newArr[i]=elements[i];

    }else{
    newArr[i+1]=elements[i];
    }

    }
    newArr[index]=element;
    elements=newArr;
    }
    //打印所有元素到控制台
    public void show(){
    System.out.println(Arrays.toString(elements));
    }
    //删除数组中的元素
    public void delect(int index){
    if(index<0||index>elements.length-1){
    throw new RuntimeException("下标越界");
    }
    //创建一个新数组
    int newArr[]=new int[elements.length-1];
    //把原先数组中的元素替换到新的数组中
    for (int i = 0; i < elements.length; i++) {
    if(i<index){
    newArr[i]=elements[i];
    }
    else{
    newArr[i]=elements[i+1];
    }
    }
    elements=newArr;
    }
    //线性查找
    public int search(int target){
    for (int i = 0; i < elements.length; i++) {
    if(elements[i]==target){
    return i;
    }
    }
    return -1;
    }
    //二分法查找
    public int binarySearch(int target){
    //设置一个中位数
    //定义最小值
    int min=0;
    //定义最大值
    int max=elements.length-1;
    //索引
    int index=-1;
    //什么情况下没有这个元素
    //如果开始位置在结束位置之后或重合
    if(min>=max){
    return -1;
    }
    int mid=(max+min)/2;
    while(true){
    if(elements[mid]==target){
    return mid;
    }
    else{
    if (elements[mid] > target) {
    max = mid - 1;
    } else{
    min = mid + 1;
    }
    //取出中间的值
    mid = (min + max) / 2;
    }
    }
    }

    }
  • 相关阅读:
    Asp.net性能优化总结(一)
    Visual C#常用函数和方法集汇总
    ASP.net下大文件上传的解决方案及WebbUpload组件源码
    正则表达式学习
    在Asp.net中为图像加入版权信息
    Cognos 维度函数
    Cognos8.3函数使用手册(二)
    cognos更新步聚
    Cognos8.3函数使用手册(一)
    Cognos 8 报表备份和恢复
  • 原文地址:https://www.cnblogs.com/fuqiang-java/p/12303089.html
Copyright © 2011-2022 走看看