插入類排序 帶哨兵的直接插入排序

2021-10-11 15:22:18 字數 588 閱讀 8188

隨機生成5000個整數,採用直接插入排序法進行排序;輸入乙個整數x,採用折半查詢之,若存在,輸出下標,否則輸出-1.

#include

#include

#include

using

namespace std;

void

createnode

(int

*l)}

//隨機生成5000個整數

void

insertsort

(int

*l)

l[j+1]

=t;//將t即原l[i],插入到正確位置}}

}//對順序表l做直接插入排序

intsearch_bin

(int

*l,int key)

return-1

;}//折半查詢

(帶哨兵)直接插入排序

將乙個記錄插入到已排序好的有序表中,從而得到乙個新,記錄數增1的有序表。即 先將序列的第1個記錄看成是乙個有序的子串行,然後從第2個記錄逐個進行插入,直至整個序列有序為止。要點 設立哨兵,作為臨時儲存和判斷陣列邊界之用。進人查詢 插入位置 迴圈之前,它儲存了r i 的副本,使不致於因記錄後移而丟失r...

直接插入排序哨兵節點

在 資料結構 直接排序演算法中引入了哨兵節點 目的 減少了越界檢查 只是為了表明哨兵這種結構的潛在價值?將資料直接放置在a 1 n 上 a 0 作為哨位節點 void insertsort item data,int len data j 1 data 0 怎乙個e xin了得 首先更改資料結構 t...

插入排序 直接插入排序

直接插入排序演算法思想 將整個資料表分成左右兩個子表,其中左子表為有序表,右子表為無序表 整個排序過程就是將右子表中的元素逐個插入到左子表中,直到右子表為空,而左子表成為新的有序表。演算法過程分析 將待排序的元素存放在陣列r n 1 中,在初始狀態下,r 0 為監視哨,r 1 為有序區,r 2 r ...