【数组】 - 有序数组设计
生活随笔
收集整理的這篇文章主要介紹了
【数组】 - 有序数组设计
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
有序數組:數組存儲有序的元素
不足:暫不考慮重復數組元素的問題
思路:通過代理模式,代理Java已實現的數組對象,實現有序數組的功能
有序數組結構主體
package com.zhiwei.array;public class OrderArray {private int[] orderArray;private int nElems; //非空元素個數private int initSize; //數組最大容納元素個數public OrderArray(int initSize){this.orderArray = new int[initSize];this.nElems = 0;this.initSize = initSize;} }
添加新元素:addElem(int value)
①:數組已經初始化其內存空間是不能發生改變的,因此數組添加新元素的時候需要考慮數組的存儲空間是否有限的問題 ②:新元素有序插入:確定新元素位置--> 原數組受影響元素向后移動1位--> 存放新元素 ③:更新數組的屬性信息:非空元素個數等
public boolean addElem(int value){if(nElems>=initSize){ return false;}int index = 0; for(int i=0;i<nElems;i++){if (value < orderArray[i]){index = i; break;}}//最后一個非空元素開始后移1位for(int j=nElems-1;j>=index;j--){orderArray[j+1] = orderArray[j];}orderArray[index] = value;nElems++;return true;}刪除元素:delElem(int value)
更新元素:updateElem(int index,int value)
冒泡排序法
思想:每次排序都將最大或者最小的元素篩選出來放在最后,然后一次對剩下的元素進行最值篩選,最后形成有序的序列 sortArray()方法:
public void sortArray(){for(int i=0;i<nElems;i++){for(int j=0;j<nElems-i-1;j++){if(orderArray[j]>orderArray[j+1]){int temp = orderArray[j];orderArray[j] = orderArray[j+1];orderArray[j+1] = temp;}}}}數組遍歷展示:show()
public void show(){StringBuffer sb = new StringBuffer();sb.append("數組元素:[");for(int i=0;i<nElems;i++){sb.append(orderArray[i]+",");}sb.deleteCharAt(sb.length()-1).append("]");System.out.println(sb);}返回數組長度:length()
public int length(){return nElems;}
測試代碼
OrderArray orderArray = new OrderArray(10); orderArray.addElem(10);orderArray.addElem(8);orderArray.addElem(9);orderArray.addElem(5);orderArray.addElem(8);orderArray.addElem(7);orderArray.show();orderArray.delElem(11);orderArray.show();orderArray.delElem(8);orderArray.delElem(9);orderArray.show();orderArray.updateElem(3,6);orderArray.show();System.out.println(orderArray.length());
結果:
補充說明:
因為是有序數組,通過addElem()方法添加新元素時,元素自動排序插入,因此插入元素順序和數組存儲的元素下標順序并沒有絕對的對應的關系,因此未提供正對索引的賦值或取值的操作方法
轉載于:https://my.oschina.net/yangzhiwei256/blog/3008636
總結
以上是生活随笔為你收集整理的【数组】 - 有序数组设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决Nginx+Tomcat下客户端ht
- 下一篇: 笔记: 环境 - Postgre从安装到