查詢
記憶體連續的儲存空間,記憶體管理器可以實現訪問任何乙個位置的元素,o(1)的查詢。
插入[1,2,3,4,5] 在3和4之間插入乙個值,6,需要把4,5 往後挪動。平均時間複雜度是o(n),刪除也是o(n) 的平均時間複雜度。
我想改變他的插入和更新的時間複雜度,有沒有好的資料結構呢?
鍊錶 – linked list
本質上,有乙個指標,鏈向下乙個節點,整個連成乙個表
查詢 o(n) , 但是在插入和刪除之前,需要查詢到對應的節點前插入或者刪除。
插入和刪除o(1)
1、反轉鍊錶,出鏡率數一數二
1-2-3-4-5
反轉5-4-3-2-1
主要考察**能力:
遞迴思路:
1、定義終止條件,(當遍歷到最後乙個節點的時候,方法返回,開始出棧)
2、出棧操作
2.1 將最後乙個節點的next指標指向前乙個節點
2.2 注意,將前乙個節點的指標記錄置空
2.3 注意,邊界條件的處理,當輸入是空的時候,輸出也應該是空,處理好就行
/**
* definition for singly-linked list.
* public class listnode
* }*/class
solution
listnode next = head.next;
final listnode listnode =
reverselist
(next)
; next.next = head;
head.next = null;
return listnode;
}}
定義兩個變數:
1、currnode 代表,當前遍歷到的值
2、newlinklistlastnode :代表反轉後的尾節點
將prev.next = newlinklistlastnode;
更新尾節點 newlinklistlastnode = currnode;
往後遍歷
/**
* definition for singly-linked list.
* public class listnode
* }*/class
solution
return newlinklistlastnode;
}}
PHP 第二天陣列
陣列,就是將多個 資料 放在一起,排成乙個有序序列,這個序列作為乙個整體 裡面包括了多個資料 就稱為 陣列 比如 info1 array 張三丰 18,男 新版本中,還可以這樣寫 張三丰 18,男 或 info2 array name 張三丰 age 18,gender 男 新版本中,還可以這樣寫 ...
第二天 列表練習
list 列表 特點 可獲取 可修改 有序的 定義乙個空列表 listvar print listvar print type listvar 正向索引 0 1 2 3 4 listvar 90,19.9,true,8 90j,王振 逆向索引 5 4 3 2 1 1.獲取列表當中的值 res lis...
2第二天數運算
數型別及其運算 解決eclipse寫python新增中文注釋報錯問題 import sys a 3b 4 c 5.5 d 4.5 e complex c,d f complex float a float b complex表示複數,第乙個引數是實數部分,第二個引數是虛數部分 print is a ...