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; } } }}
相关推荐
风吹夏天 2020-07-07
randy0 2020-11-17
lixiaotao 2020-10-07
美丽的泡沫 2020-09-08
nongfusanquan0 2020-08-18
hang0 2020-08-16
earthhouge 2020-08-15
算法改变人生 2020-07-28
troysps 2020-07-19
Broadview 2020-07-19
chenfei0 2020-07-18
yangjingdong00 2020-07-05
数据与算法之美 2020-07-05
shawsun 2020-07-04
数据与算法之美 2020-07-04
要知道时间复杂度只是描述一个增长趋势,复杂度为O的排序算法执行时间不一定比复杂度为O长,因为在计算O时省略了系数、常数、低阶。实际上,在对小规模数据进行排序时,n2的值实际比 knlogn+c还要小。
Evankaka 2020-07-04
田有朋 2020-06-28