飛艷小屋

          程序--人生--哲學___________________歡迎艷兒的加入

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            52 Posts :: 175 Stories :: 107 Comments :: 0 Trackbacks

          public?class?Sort?{

          ??public?void?swap(int?a[],?int?i,?int?j)?{
          ????int?tmp?=?a[i];
          ????a[i]?=?a[j];
          ????a[j]?=?tmp;
          ??}

          ??public?int?partition(int?a[],?int?low,?int?high)?{
          ????int?pivot,?p_pos,?i;
          ????p_pos?=?low;
          ????pivot?=?a[p_pos];
          ????for?(i?=?low?+?1;?i?<=?high;?i++)?{
          ??????if?(a[i]?>?pivot)?{
          ????????p_pos++;
          ????????swap(a,?p_pos,?i);
          ??????}
          ????}
          ????swap(a,?low,?p_pos);
          ????return?p_pos;
          ??}

          ??public?void?quicksort(int?a[],?int?low,?int?high)?{
          ????int?pivot;
          ????if?(low?<?high)?{
          ??????pivot?=?partition(a,?low,?high);
          ??????quicksort(a,?low,?pivot?-?1);
          ??????quicksort(a,?pivot?+?1,?high);
          ????}

          ??}

          ??public?static?void?main(String?args[])?{
          ????int?vec[]?=?new?int[]?{?37,?47,?23,?-5,?19,?56?};
          ????int?temp;
          ????//選擇排序法(Selection?Sort)
          ????long?begin?=?System.currentTimeMillis();
          ????for?(int?k?=?0;?k?<?1000000;?k++)?{
          ??????for?(int?i?=?0;?i?<?vec.length;?i++)?{
          ????????for?(int?j?=?i;?j?<?vec.length;?j++)?{
          ??????????if?(vec[j]?>?vec[i])?{
          ????????????temp?=?vec[i];
          ????????????vec[i]?=?vec[j];
          ????????????vec[j]?=?temp;
          ??????????}
          ????????}

          ??????}
          ????}
          ????long?end?=?System.currentTimeMillis();
          ????System.out.println("選擇法用時為:"?+?(end?-?begin));
          ????//打印排序好的結果
          ????for?(int?i?=?0;?i?<?vec.length;?i++)?{
          ??????System.out.println(vec[i]);
          ????}
          ????//??冒泡排序法(Bubble?Sort)
          ????begin?=?System.currentTimeMillis();
          ????for?(int?k?=?0;?k?<?1000000;?k++)?{
          ??????for?(int?i?=?0;?i?<?vec.length;?i++)?{
          ????????for?(int?j?=?i;?j?<?vec.length?-?1;?j++)?{
          ??????????if?(vec[j?+?1]?>?vec[j])?{
          ????????????temp?=?vec[j?+?1];
          ????????????vec[j?+?1]?=?vec[j];
          ????????????vec[j]?=?temp;
          ??????????}
          ????????}

          ??????}
          ????}
          ????end?=?System.currentTimeMillis();
          ????System.out.println("冒泡法用時為:"?+?(end?-?begin));
          ????//打印排序好的結果
          ????for?(int?i?=?0;?i?<?vec.length;?i++)?{
          ??????System.out.println(vec[i]);
          ????}

          ????//插入排序法(Insertion?Sort)
          ????begin?=?System.currentTimeMillis();
          ????for?(int?k?=?0;?k?<?1000000;?k++)?{
          ??????for?(int?i?=?1;?i?<?vec.length;?i++)?{
          ????????int?j?=?i;
          ????????while?(vec[j?-?1]?<?vec[i])?{
          ??????????vec[j]?=?vec[j?-?1];
          ??????????j--;
          ??????????if?(j?<=?0)?{
          ????????????break;
          ??????????}
          ????????}
          ????????vec[j]?=?vec[i];
          ??????}
          ????}
          ????end?=?System.currentTimeMillis();
          ????System.out.println("插入法用時為:"?+?(end?-?begin));
          ????//打印排序好的結果
          ????for?(int?i?=?0;?i?<?vec.length;?i++)?{
          ??????System.out.println(vec[i]);
          ????}

          ????//快速排序法(Quick?Sort)

          ????Sort?s?=?new?Sort();
          ????begin?=?System.currentTimeMillis();
          ????for?(int?k?=?0;?k?<?1000000;?k++)?{
          ??????s.quicksort(vec,?0,?5);
          ????}
          ????end?=?System.currentTimeMillis();
          ????System.out.println("快速法用時為:"?+?(end?-?begin));
          ????//打印排序好的結果
          ????for?(int?i?=?0;?i?<?vec.length;?i++)?{
          ??????System.out.println(vec[i]);
          ????}
          ??}

          }

          posted on 2006-06-05 10:24 天外飛仙 閱讀(241) 評論(0)  編輯  收藏 所屬分類: 算法數據結構

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 绥棱县| 丰镇市| 芜湖县| 武威市| 榆中县| 梨树县| 明光市| 闵行区| 新泰市| 阜阳市| 横山县| 会昌县| 吐鲁番市| 光山县| 四川省| 马公市| 高雄市| 临洮县| 东海县| 巴彦淖尔市| 吉木萨尔县| 辽宁省| 敦化市| 利辛县| 崇州市| 宝应县| 新营市| 壤塘县| 青川县| 黄梅县| 平原县| 巴里| 吉木乃县| 邵阳市| 江山市| 梨树县| 民县| 南宁市| 新疆| 海淀区| 姜堰市|