題目:
有乙個順序表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 雜湊法中,雜湊函式構造方法...