玩轉資料結構之陣列
Where to use Data structure?
Data structure
Why learn data structure?
- Get the top company's offer
- Better coding
- Change the world
注意事項
Pythonic的寫法可能比邏輯本身更重要, 當然,其他語言也有類似的情況。
arr[]
for i in range(10)
arr.append(i)
效率低
arr = [i for i in range(10)]
Array
public class Main {
public static void main(String[] args) {
int[] arr = new int[10];
for(int i = 0 ; i
然後我看了下class檔案
int[] var8 = scores;
int var4 = scores.length;
for(int var5 = 0; var5
封裝自定義陣列
public class Array {
// E代表資料型別
private E[] data;
private int size;
// 建構函式,傳入陣列的容量capacity構造Array
public Array(int capacity){
data = (E[])new Object[capacity];
size = 0;
}
// 無引數的建構函式,預設陣列的容量capacity=10
public Array(){
this(10);
}
// 獲取陣列的容量
public int getCapacity(){
return data.length;
}
// 獲取陣列中的元素個數
public int getSize(){
return size;
}
// 返回陣列是否為空
public boolean isEmpty(){
return size == 0;
}
// 在index索引的位置插入一個新元素e
public void add(int index, E e){
if(index size)
throw new IllegalArgumentException("Add failed. Require index >= 0 and index = index ; i --)
data[i + 1] = data[i];
data[index] = e;
size ++;
}
// 向所有元素後新增一個新元素
public void addLast(E e){
add(size, e);
}
// 在所有元素前新增一個新元素
public void addFirst(E e){
add(0, e);
}
// 獲取index索引位置的元素
public E get(int index){
if(index = size)
throw new IllegalArgumentException("Get failed. Index is illegal.");
return data[index];
}
public E getLast(){
return get(size - 1);
}
public E getFirst(){
return get(0);
}
// 修改index索引位置的元素為e
public void set(int index, E e){
if(index = size)
throw new IllegalArgumentException("Set failed. Index is illegal.");
data[index] = e;
}
// 查詢陣列中是否有元素e
public boolean contains(E e){
for(int i = 0 ; i = size)
throw new IllegalArgumentException("Remove failed. Index is illegal.");
E ret = data[index];
for(int i = index + 1 ; i
Test Example
泛型
動態陣列
大概思路就是達到臨界值(增加陣列容量或者減少陣列容量)生成一個新陣列,然後內容遷移,最後指向新陣列
時間複雜度
均攤 amortized time complexity
複雜度震盪
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3016/viewspace-2803872/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 慕課網玩轉資料結構課程之陣列資料結構陣列
- 資料結構之「陣列」資料結構陣列
- 資料結構之陣列資料結構陣列
- LeetCode之資料結構——陣列LeetCode資料結構陣列
- 基礎資料結構之陣列資料結構陣列
- JavaScript資料結構之陣列棧佇列JavaScript資料結構陣列佇列
- PHP 陣列轉樹結構/樹結構轉陣列PHP陣列
- 資料結構-陣列資料結構陣列
- 資料結構 - 陣列資料結構陣列
- java資料結構學習之陣列Java資料結構陣列
- (一)Java資料結構之稀疏陣列Java資料結構陣列
- 資料結構之php實現陣列資料結構PHP陣列
- 資料結構2——陣列資料結構陣列
- 資料結構之陣列和矩陣--矩陣&不規則二維陣列資料結構陣列矩陣
- 資料結構之真別多想—樹狀陣列資料結構陣列
- 資料結構與演算法之稀疏陣列資料結構演算法陣列
- Java版-資料結構-陣列Java資料結構陣列
- JS資料結構(一)——陣列JS資料結構陣列
- JavaScript資料結構01 - 陣列JavaScript資料結構陣列
- 資料結構——樹狀陣列資料結構陣列
- 資料結構基礎學習之(串與陣列)資料結構陣列
- Java版-資料結構-佇列(陣列佇列)Java資料結構佇列陣列
- js實現資料結構--陣列JS資料結構陣列
- pyspark 解析kafka陣列結構資料SparkKafka陣列
- 工具函式:普通陣列如何轉為樹形結構資料(多層級)陣列?函式陣列
- 資料結構之「佇列」資料結構佇列
- 資料結構與演算法——陣列資料結構演算法陣列
- JavaScript資料結構之-佇列JavaScript資料結構佇列
- JavaScript資料結構之佇列JavaScript資料結構佇列
- 資料結構之佇列(Queue)資料結構佇列
- 程式猿修仙之路--資料結構之你是否真的懂陣列?資料結構陣列
- 字串陣列轉為樹形結構字串陣列
- 資料結構:陣列,稀疏矩陣,矩陣的壓縮。應用:矩陣的轉置,矩陣相乘資料結構陣列矩陣
- 玩轉陣列各種方法陣列
- 資料結構與演算法 | 陣列(Array)資料結構演算法陣列
- 【資料結構與演算法】——稀疏陣列資料結構演算法陣列
- 資料結構與演算法基礎之指標和陣列資料結構演算法指標陣列
- 看得見的資料結構Android版之陣列表(資料結構篇)資料結構Android陣列