1. 程式人生 > 其它 >演算法第四章實驗報告

演算法第四章實驗報告

一、實踐題目

刪數問題

二、問題描述

給定n位正整數a,去掉其中任意k≤n 個數字後,剩下的數字按原次序排列組成一個新的正整數。對於給定的n位正整數a和正整數 k,設計一個演算法找出剩下數字組成的新數最小的刪數方案。如果數字最前面有0不輸出。

三、演算法描述

1.採用貪心法。貪心策略是:刪除從左到右第一個遞減序列的第一個數,當序列是非遞減時,刪除最後一個數。

2.迴圈第一步k次。

3.利用flag刪除前置的0。

四、演算法時間複雜度以及空間複雜度的分析

時間複雜度:O(nk)

空間複雜度:O(1)

五、心得體會

一開始我們採用的是找出序列中最大的數進行刪除,但是發現這樣是不對的,對此我認為選擇一個正確的貪心策略是非常重要的。

六、貪心演算法的個人體會和思考

1、貪心演算法的貪心選擇性質和最優子結構性質是很重要的。

2、在某些情況下,貪心演算法並不能得到最優結果。