博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构与算法学习笔记(1)--数组
阅读量:4092 次
发布时间:2019-05-25

本文共 3691 字,大约阅读时间需要 12 分钟。

  1. 数组MyArray
package cn.mydata;public class MyArray {	private int[] arr;	//表示有效数据的长度	private int elements;			public MyArray() {		arr = new int[50];	}		public MyArray(int maxsize) {		arr = new int[maxsize];	}	/**	 * 添加数据	 */	public void insert(int value) {		arr[elements] = value;		elements++;	}	/**	 * 显示数据	 */	public void display() {		System.out.print("[");		for (int i = 0; i < elements; i++) {			System.out.print(arr[i] + " ");		}		System.out.print("]");	}	/**	 * 查找数据	 */	public int search(int value) {		int i;		for (i = 0; i < elements; i++) {			if (value == arr[i]) {				break;			}		}		if (i == elements) {			return -1;		}else {			return i;		}	}		/**	 * 查找数据,根据索引来查	 */	public int get(int index) {		if (index >= elements || index < 0) {			throw new ArrayIndexOutOfBoundsException();		}else {			return arr[index];		}	}	/**	 * 删除数据	 */	public void delete(int index) {		if (index >= elements || index < 0) {			throw new ArrayIndexOutOfBoundsException();		}else {			for (int i = index; i < elements; i++) {				arr[index] = arr[index + 1];			}			elements--;		}	}	/**	 * 更新数据	 */	public void change(int index,int newvalue) {		if (index >= elements || index < 0) {			throw new ArrayIndexOutOfBoundsException();		}else {			arr[index] = newvalue;		}	}}
  1. 有序数组MyOrderArray
package cn.mydata;public class MyOrderArray {	private int[] arr;	//表示有效数据的长度	private int elements;			public MyOrderArray() {		arr = new int[50];	}		public MyOrderArray(int maxsize) {		arr = new int[maxsize];	}	/**	 * 添加数据	 */	public void insert(int value) {		int i;		for (i = 0; i < elements; i++) {			if (arr[i] > value) {				break;			}		}				for (int j = elements; j > i; j--) {			arr[j] = arr[j - 1];		}		arr[i] = value;		elements++;	}	/**	 * 显示数据	 */	public void display() {		System.out.print("[");		for (int i = 0; i < elements; i++) {			System.out.print(arr[i] + " ");		}		System.out.print("]");	}	/**	 * 查找数据	 */	public int search(int value) {		int i;		for (i = 0; i < elements; i++) {			if (value == arr[i]) {				break;			}		}		if (i == elements) {			return -1;		}else {			return i;		}	}		/**	 * 二分法查找数据	 */	public int binarySearch(int value) {		int middle = 0;		int low = 0;		int pow = elements;				while (true) {			middle = (pow + low) / 2;			if (arr[middle] == value) {				return middle;			}else if(low > pow) {				return -1;			}else {				if (arr[middle] > value) {					pow = middle - 1;				}else {					low = middle + 1;				}			}					}	}		/**	 * 查找数据,根据索引来查	 */	public int get(int index) {		if (index >= elements || index < 0) {			throw new ArrayIndexOutOfBoundsException();		}else {			return arr[index];		}	}	/**	 * 删除数据	 */	public void delete(int index) {		if (index >= elements || index < 0) {			throw new ArrayIndexOutOfBoundsException();		}else {			for (int i = index; i < elements; i++) {				arr[index] = arr[index + 1];			}			elements--;		}	}	/**	 * 更新数据	 */	public void change(int index,int newvalue) {		if (index >= elements || index < 0) {			throw new ArrayIndexOutOfBoundsException();		}else {			arr[index] = newvalue;		}	}}

3.测试类TestMyArray

package cn.mydata;public class TestMyArray {	public static void main(String[] args) {		MyArray myArray = new MyArray();		myArray.insert(30);		myArray.insert(60);		myArray.insert(90);				myArray.display();//		System.out.println(myArray.search(90));//		System.out.println(myArray.get(3));//		myArray.delete(1);//		myArray.display();		myArray.change(0, 12);		myArray.display();				MyOrderArray myOrderArray = new MyOrderArray();		myOrderArray.insert(30);		myOrderArray.insert(10);		myOrderArray.insert(90);		myOrderArray.insert(60);		myOrderArray.display();				System.out.println(myOrderArray.binarySearch(30));		System.out.println(myOrderArray.binarySearch(90));	}}

转载地址:http://sncii.baihongyu.com/

你可能感兴趣的文章
崩了,Python把自己玩死了! 网友:不可惜!
查看>>
联合国为何 Pick 腾讯?
查看>>
程序员感叹一年只能存下15万太少了……网友:潸然泪下
查看>>
负油价甩锅程序员?
查看>>
完了!Oracle 被虐!MySQL 登顶 Top1!原来这么多人都在用
查看>>
科大讯飞营收破百亿,员工涨薪27%,羡慕这个AI“老大哥”了!
查看>>
“我放弃了年薪20万的offer…”
查看>>
“编程能力差,90%输在了数学上!”CTO:多数程序员都是瞎努力!
查看>>
两行代码的库引发“血案”:坑了数百万个项目
查看>>
谷歌爆苹果 Image I/O 存重大漏洞,无辜用户躺枪
查看>>
石锤!今年Python要过苦日子了? 程序员:我疯了!
查看>>
太生猛!AI应届生年薪涨到80万!网友:后悔生的太早
查看>>
AI 智能修复老照片,效果惊艳到我了!| 附代码
查看>>
现实!程序员内推圈:“同事跳槽快手,涨薪70%!”
查看>>
为啥程序员下班后只关显示器从不关电脑?
查看>>
为什么铺天盖地都是 Python 的广告?网友:不值得!
查看>>
Python处理分析128张Excel表格竟不到3秒?
查看>>
“程序员”夏季最新时尚穿搭指南,小姐姐超爱的那种
查看>>
程序员的基本功:为什么非要用 Python 做数据分析?Excel 不好吗?
查看>>
全国程序员工资最新统计来了,平均 14,542 元!
查看>>