欧美色视频免费_2018亚洲男人天堂_好骚综合在线_久久久久久久久国产_日韩精品久久久久久久九岛_国产成年人视频

推廣 熱搜: 廣場  Java  Word  app  營業  微信公眾號  北京代理記賬  商城  代理記賬  商標交易 

怎么讓數組的元素后移一位 順序表結點結構的定義?

   2023-05-06 企業服務招財貓90
核心提示:順序表結點結構的定義?順序表的定義線性表的順序存儲也稱為順序表。它利用一組地址連續的存儲單元將數據元素依次存儲在一個線性表中,使得兩個邏輯上相鄰的元素在物理位置上也是相鄰的。假設線性表的元素類型是El

順序表結點結構的定義?

順序表的定義

線性表的順序存儲也稱為順序表。它利用一組地址連續的存儲單元將數據元素依次存儲在一個線性表中,使得兩個邏輯上相鄰的元素在物理位置上也是相鄰的。

假設線性表的元素類型是ElemType,線性表的順序存儲類型描述為:

#定義MaxSize50

typedef結構

{

ElemType數據[MaxSize]

int長度

}SqList

一維數組可以靜態或動態分配。在靜態分配中,由于數組的大小和空間已經提前固定,一旦空間滿了,添加新的數據就會溢出,導致程序崩潰甚至其他未知的異常。

在動態分配中,存儲數組的空間是在程序執行過程中通過動態存儲分配語句來分配的。一旦存儲空間滿了,就會打開另一個更大的存儲區間來復制原來的元素,從而在不需要一次性分配大量空間的情況下,擴展存儲數組的空間。

#定義InitSize100

typedef結構

{

ElemType*dataPtr

int長度

int大小

}SqList

C語言的初始動態分配語句是:(elemtype*)malloc(Sizeof(elemtype)*initsize)。

C語言的初始化動態分配語句是:ElemType[InitSize]。

注意:動態存儲不是市場存儲,它也屬于順序存儲。物理結構沒有改變,它仍然與邏輯結構相鄰,但分配的空間不再由編譯器決定,而是在運行時分配。

2、序列表的特點

隨機存取:通過首地址和元素序號,可以在單位時間O(1)內找到指定的元素。

存儲密度高:存儲密度高是因為每個節點的存儲空間指的是數據元素的存儲,沒有額外的開銷。

物理位置是相鄰的:物理位置和邏輯位置是一樣的,所以在插入和刪除元素的時候移動大量的元素是很耗時的。這是所有與物理結構相鄰的數據結構的通病。雖然訪問速度很快,但是如果有頻繁的添加、刪除、移動等操作,效率會很低。

3.序列表上基本操作的實現

只顯示了搜索、添加、刪除等三個操作,其余的在線性表中比較簡單,在比較復雜的鏈表中顯示。

3.1、插入操作

在I(1LTLTL中插入新元素e。序列表l的長度1)位。

boollistinsert(SQLlistampL,inti,ElemTypee)

{

if(ilt1||igtL.lenGth1)//判斷我要插入的位置是否有效。

返回false

If(L.lengthgtMaxSize)//判斷是否超出存儲空間。

返回false

for(intjl.lengthjgtIj-)///將第I個元素及其后的元素向后移動一個位置。

[j][j-1]

[i-1]e//在第I個位置插入元素E。

L.length//序列表長度加1

返回true

}

最好的情況:在表的末尾插入(即in1),原元素不移動,時間復雜度為O(1)。

最差情況:在頭(即i1)插入時,所有元素都需要后移一位,元素后向語句執行n次,時間復雜度為O(n)。

平均情況:假設Pi(Pi1/(n-1))是在第I個位置插入一個節點的概率,在長度為n的序列表中插入一個節點時,移動節點的平均次數為n/2,時間復雜度為O(n)。

3.2.刪除操作

刪除序列表l中i(1ltiltL.length)位置的元素

boollistdelete(SQLlistampL,inti,ElemTypeampe)

{

If(ilt1||igtL.length)//判斷我要插入的位置是否有效。

返回false

E[i-1]//將要刪除的數據保存到e。

For(intji-1jltL.lengthj)//將第I個元素和后續元素向后移動一個位置。

[j][j1]

長度length-//序列表長度加1

返回true

}

時間復雜度與插入相同(平均而言,插入總是比刪除每多一步操作,即插入操作,但不會引起數量級的變化,所以平均時間復雜度仍為O(N))。

3.3、按值搜索(順序搜索)

在序列表中找到第一個元素值等于e的元素的位置,沒有找到return-1。

intlocateelem(SQLlistL,const

倒序插入法的詳細計算步驟?

插入排序法的基本操作是將一個數據插入。在有序數據中(一開始可以認為只有一個元素的序列是有序序列,即從第二個數據開始一個一個插入),從而得到一個新的增加1的有序數據。

該算法適合對少量數據進行排序,時間復雜度為O(n2)。是一種穩定的排序方法。插入算法把要排序的數組分成兩部分:第一部分包含數組的所有元素,除了最后一個元素(讓數組有更多的空間可以插入),第二部分只包含這個元素(也就是要插入的元素)。第一部分排序后,將最后一個元素插入排序后的第一部分。

插入排序的基本思想是:在每一步,將一條待排序的記錄按照其鍵值的大小插入到先前排序的序列中的適當位置,直到所有記錄都入。

為了避免重復比較是否出格,下面的插入排序使用"哨兵"。即在插入結束時,復制一份要插入的數據(a[0])的副本,一物兩用,既能保存數據,又能有效防止搜索越界,反復檢測是否越界。在每一輪中,比要插入的數字大的數字被一個一個地向后移動,最后一個[0]被正確地放在適當的位置。

1)存儲在a[1]~a[n]中的數據,i2

②一[0]一[i],紀

3)如果a[j-1]gta[0],那么a[j]a[j-1],然后j-轉到3)

4)a[j]a[0]

5)i若iltn,則ji,轉3),否則結束。

排序后,a[1]~a[n]都是升序序列。

 
反對 0舉報 0 收藏 0 打賞 0評論 0
 
更多>同類資訊
推薦圖文
推薦資訊
點擊排行
合作伙伴
網站首頁  |  關于我們  |  聯系方式  |  使用協議  |  版權隱私  |  網站地圖  |  排名推廣  |  廣告服務  |  積分換禮  |  網站留言  |  RSS訂閱  |  違規舉報  |  冀ICP備2023006999號-8
 
主站蜘蛛池模板: 久久成人欧美 | 51久久夜色精品国产麻豆 | 国产精品美女一区二区三区 | 成人国产一区二区 | 国内精品国产成人国产三级粉色 | 欧美福利在线观看 | 日韩视频 中文字幕 视频一区 | 91网页入口 | 久久精品国产99 | 亚洲综合视频在线 | av在线中文 | 国产一区二区三区在线看 | 国内精品视频一区 | 久久亚洲成人 | 九九热在线免费视频 | 亚洲一区色| 久久久久久国产精品免费 | 综合久久久久久久 | 久久亚洲综合国产精品99麻豆精品福利 | 中韩乱幕日产无线码一区 | 91av在线免费观看 | 黄色高清| 久久xxxx| 日韩在线二区 | 亚洲免费在线 | 99视频在线播放 | 亚洲视频免费在线观看 | 久久免费影院 | 中文日产幕无线码一二三四区 | 黄色网址av | 久久久国产精品视频 | 欧美成人三区 | 中文字幕在线免费 | 美女被免费喷白浆视频 | 精品久久中文字幕 | 国产精品视频一二三 | 日韩精品一区在线观看 | 在线国产精品自拍 | 国产一区二区久久 | 色姑娘综合网 | 国产精品123区 |