資料結構 重構法

2021-10-09 15:21:22 字數 614 閱讀 9032

題目:

有乙個順序表l,其元素為整形資料,設計乙個演算法,將l中所有小於表頭元素的整數放在前半部分,大於表頭元素的整數放在後半部分。

思路:利用重構法,即前面與後面一起運動,從前面用乙個迴圈掃瞄,當掃瞄到大於表頭時停止,從後面用乙個迴圈掃瞄,當掃瞄到小於表頭時停止,然後將這兩個位置互換即可

**如下:

void

sort

(seqlist <

int>

& a)

//定義了a為乙個順序表,如果想用陣列的話就直接為void sort (a,n)即可

//當後面出現為大於表頭point時一直向前移動,直到出現了小於時停止迴圈

while

(i < m &&

(a.data[i]

<= point)

//當前面出現了小於point時一直向後移動,直到出現了大於的才停止迴圈

if(i < m)

//將上面兩個數互換位置後,繼續移動

} a.

output()

;//將互換後的順序表輸出,注意output 函式事先要定義好,即要先把輸出函式在類裡面寫好才可以呼叫

}

資料結構 內部排序法

總結一些演算法的實現 交換排序 1.冒泡演算法 typedef struct arr1 arr1 void bubblesort arr1 goal,int n if flag m沒有交換時證明排玩了,跳出迴圈結束排序。return 2.快速排序 時間複雜度為o nlog2n 空間複雜度為o log...

資料結構 最小表示法

1282 時鐘 有n個時鐘,每個時鐘有m個指標,p個刻度。時鐘是圓形的,p個刻度均分整個圓。每個時鐘每個指標指向整數刻度,並且每個時鐘自身指標指向的數字都不同。你可以任意旋轉時鐘的表盤,但是你不能轉指標。問最後有多少對時鐘可以變成相同的狀態。例如 n 5,m 2,p 4,5個時鐘的資料如下 經過旋轉...

資料結構記錄 雜湊法實驗

home web board problemset standing status statistics time limit 1 sec memory limit 128 mb submit 1008 solved 310 submit status web board 雜湊法中,雜湊函式構造方法...