First they ignore you
          then they ridicule you
          then they fight you
          then you win
              -- Mahatma Gandhi
          Chinese => English     英文 => 中文             
          隨筆-221  評論-1047  文章-0  trackbacks-0
          ??????? 每個問題有很多種解法,但其中存在一種最優(yōu)的算法,據(jù)我觀察和思考,‘懶人’是寫不出那種最優(yōu)算法的,為什么呢?因為最優(yōu)算法有一個很明顯的特點就是算法本身集結(jié)了人類的聰明才智,讓我來用一個實例來證明這個觀點:

          問題:
          請計算當參數(shù)為 n(n很大) 時, 1-2+3-4+5-6+7+......+n 的值

          ‘懶人’解法:
          public class Lazy {
          ? public static void main(String[] args) {
          ??? int n = 10000;
          ??? int result = 0;
          ??? for (int i = 0, flag = 1; i < n; i++) {
          ????? result += flag * (i + 1);
          ????? flag =?-flag;
          ??? }
          ??? System.out.println(result);
          ? }
          }

          ‘勤人’解法:
          public class Diligent {
          ? public static void main(String[] args) {
          ??? int n = 10000;
          ??? int result = 0;
          ??? if (0 == n % 2) {
          ????? result = -n / 2;
          ??? } else {
          ????? result = -n / 2 + n;? //由于-n / 2會舍棄小數(shù)部分,所以無需寫成-(n - 1) / 2
          ??? }
          ??? System.out.println(result);
          ? }
          }

          人類的智慧為計算機擔負了不少的計算量,“懶人”算法的時間復雜度為O(n),而“勤人”算法的時間復雜度僅為O(1),這題的最優(yōu)算法出世了!
          忠告各位喜愛編程的朋友,在解決問題之前,請可憐可憐您使用的那臺精疲力盡的計算機吧,花些時間思考一下,您付出的一分一秒都會有回報的 :-)
          posted on 2006-10-14 18:05 山風小子 閱讀(1562) 評論(10)  編輯  收藏 所屬分類: Algorithm
          主站蜘蛛池模板: 韩城市| 益阳市| 吴堡县| 永宁县| 奉化市| 惠东县| 微博| 卢龙县| 大石桥市| 佛学| 得荣县| 全州县| 海阳市| 昭苏县| 开阳县| 山东省| 芮城县| 梁平县| 朝阳市| 桂林市| 和林格尔县| 即墨市| 肃北| 辽中县| 名山县| 石嘴山市| 孟津县| 河源市| 那坡县| 沙坪坝区| 黔东| 临夏市| 祥云县| 丰都县| 抚州市| 无锡市| 汾阳市| 墨玉县| 通江县| 建阳市| 额敏县|