資料結構學習 將陣列的元素迴圈右移k位

2021-10-01 23:45:47 字數 463 閱讀 4866

晚上完成演算法實現。待續——

題目:

設計乙個演算法,將陣列a(0...n-1)中的元素迴圈右移k位,假設原陣列序列為a0, a1, ... an-2, an-1,移動後為an-k, an-k+1, ..., a0,  a1, ... , an-k-1。 

要求:只用乙個元素大小的附加儲存;

元素移動或交換次數與n線性相關。

例:n= 10, k = 3;

原始陣列:0,1,2,3,4,5,6,7,8,9

右移後的陣列7,8,9,0,1,2,3,4,5,6

思路:

空間上只用乙個附加儲存,即只有乙個額外的空間存放資料;

與n線性相關,即不能夠採用多次右移的方式進行,需要一次成型。

目前的想法是建立乙個迴圈,採用確定的對映關係來進行交換元素。

但是目前的迴圈體有問題。

待續——

資料結構學習

什麼是資料結構 對計算機記憶體中的資料的一種安排。資料結構有那些?優缺點?1.陣列 插入快 知道下標 查詢慢,刪除慢,大小固定 2.有序陣列 比無序的查詢塊,刪除和插入慢,大小固定 3.棧 吃多了吐 個人理解 4.佇列 吃多了拉 個人理解 5.鍊錶 插入快,刪除快,查詢慢 6.二叉樹 查詢 插入 刪...

資料結構學習

鍊錶 class listnode definit self,x self.val x 節點值 self.next none 後繼節點值 例項化節點 n1 listnode 4 節點head n2 listnode 5 n3 listnode 1 構建引用指向 n1.next n2 n2.next ...

資料結構 學習

外部學習資料位址 一 描述 1.arraylist 是最常用的list 實現類,內部是通過陣列實現的,它允許對元素進行快速隨機訪問。2.陣列的缺點是每個元素之間不能有間隔,當陣列大小不滿足時需要增加儲存能力,就要將已經有陣列的資料複製到新的儲存空間中。3.當從arraylist 的中間位置插入或者刪...