程式給定1秒的執行時間,則我們設計的演算法時間複雜度不能超過百萬級別,即不能超過一千萬,即若演算法的時間複雜度是o(n^2),則該n不應大於3000.
常見評測結果
accepted :得到該題全部分數
wrong answer: 對若干組測試資料或者全部資料沒有輸出正確結果
解決方向:如果對設計的演算法有較大的把握。可以考慮**健壯性,即特殊資料、邊界資料,比如程式中變數的溢位。
另一方向,懷疑演算法本身的正確性
presentation error: 這時離正確結果不遠了,出現錯誤只是因為一些空格換行之類的多餘字元
time limit exceeded:你的程式在輸出答案所需要的答案之前已經超出了題目中所規定的時間。
解決方向:假如確定演算法的時間複雜度符合題目的要求,那麼依舊可以檢查是否程式可能在某種情況下出現了死迴圈,是否有邊界資料可能會讓你的**不 按照預想的工作
你設計的演算法時間複雜度是否已經高於題目對複雜度的要求,如果是,重新設計更加高效的演算法或者對現行的演算法進行優化。
程式是否出現了除以整數0.從而使程式異常
程式是否呼叫了評判系統禁止呼叫的函式
程式是否會因為遞迴過深或者其他原因造成棧溢位
常見排序演算法複雜度
相關概念 1 穩定排序 stable sort 和非穩定排序 穩定排序是指所有相等的數經過某種排序演算法操作後仍然能保持它們在排序之前的相對次序。反之就是非穩定排序。2 內排序 internal sorting 和外排序 external sorting 在排序過程中,所有需要排序的數都在記憶體,並...
常見演算法的時間複雜度
排序方法 平均情況 最好情況 最壞情況 輔助空間 穩定性 氣泡排序 o n 2 o n o n 2 o 1 穩定 選擇排序 o n 2 o n 2 o n 2 o 1 不穩定 插入排序 o n 2 o n o n 2 o 1 穩定 希爾排序o n log n o n 2 o n 1.3 o n 2 ...
演算法的複雜度 演算法的時間複雜度和空間複雜度
在一次筆試題目中,發現了自己對於演算法的時間複雜度問題上並沒有完全清晰這個概念和計算方法,故上網尋找到比較好的詳細介紹來學習。演算法的時間複雜度和空間複雜度合稱為演算法的複雜度。1.時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但我們不可能也...