前面我們提到了陣列,現在我們就以陣列來實現反轉…
如我們定義乙個陣列
int
array = ;
反轉無疑就是將陣列下標第0個元素與下標最後乙個元素互換,然後是第1個元素與倒數第2個元素的互換,依次類推…
我們設想陣列長度為基數或偶數都沒有問題…
我們需要乙個方法,在方法中就做一件事情,那就是交換元素,在交換元素過程中只要確定好下標…
ok 那我們來具體實現以下…
c++
#include
template
int getarraylen(t& array)
template
void reverse(t& array)
}template
void output(t& array)
}int main();
reverse(array);
output(array);
return
0;}
我們看到reverse 的 while中判斷 left < right ,當left 這個小標不小於right小標是整個陣列將被反轉 …
通過上面一些簡單的講解,
相信朋友們已經知道其原理及特性了。
本人能力有限,
如發現錯誤或不合理歡迎指正…
資料結構與演算法 反轉鍊錶
定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null限制 0 節點個數 5000 本題最簡單的方法是用棧。但如果考慮到使空間複雜度最小,可以使用前後雙指標法 definition for singly l...
資料結構與演算法二
資料結構作為一門學科主要研究資料的各種邏輯結構和儲存結構,以及對資料的各種操作。因此,主要有三個方面的內容 資料的邏輯結構 資料的物理儲存結構 對資料的操作 或演算法 通常,演算法的設計取決於資料的邏輯結構,演算法的實現取決於資料的物理儲存結構。邏輯結構 是指資料物件中資料元素之間的相互關係。其實這...
資料結構與演算法(二)
函式的漸近增長 給定兩個函式 f n 和 g n 如果存在乙個整數n,使得對於所有的n n,f n 總是比g n 大,那麼我們說f n 的增長漸近快於g n 如圖 演算法時間複雜度的定義 在進行時間演算法分析時,語句總的執行次數t n 是關於問題規模n的函式,進而分析t n 隨n的變化情況並確定t ...