<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 89,  comments - 98,  trackbacks - 0

    1? Java排序算法?
    ? package com.cucu.test;

    /**
    ?* @author http://www.linewell.com <a href=mailto:cg@linewell.com>cg@linewell.com</a>
    ?* @version 1.0
    ?*/
    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]);
    ??? }
    ? }

    }
    以下是運行結果:
    選擇法用時為:234
    56
    47
    37
    23
    19
    -5
    冒泡法用時為:172
    56
    47
    37
    23
    19
    -5
    插入法用時為:78
    56
    47
    37
    23
    19
    -5
    快速法用時為:297
    56
    47
    37
    23
    19
    -5?

    posted on 2006-09-01 10:31 水煮三國 閱讀(465) 評論(1)  編輯  收藏 所屬分類: J2SE

    FeedBack:
    # re: 轉 JAVA一篇排序算法文章
    2007-06-27 23:08 | agoo
    兄弟你的冒泡排序有錯吧,我動行的結果可是不對的  回復  更多評論
      
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    常用鏈接

    留言簿(4)

    隨筆分類(85)

    隨筆檔案(89)

    文章分類(14)

    文章檔案(42)

    收藏夾(37)

    java

    oracle

    Sybase

    搜索

    •  

    積分與排名

    • 積分 - 211642
    • 排名 - 266

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久国产乱子伦精品免费不卡| 亚洲欧洲尹人香蕉综合| 含羞草国产亚洲精品岁国产精品| 人与禽交免费网站视频| 亚洲无圣光一区二区| 蜜臀AV免费一区二区三区| 久久久久亚洲精品天堂| 波多野结衣免费在线观看| 亚洲av片不卡无码久久| 成年女人看片免费视频播放器| 亚洲私人无码综合久久网| 麻豆国产精品入口免费观看| 国产精品亚洲一区二区三区在线观看 | 亚洲精品麻豆av| 中文字幕视频免费在线观看 | 四虎成人精品一区二区免费网站| 国产 亚洲 中文在线 字幕 | 久久久久亚洲AV综合波多野结衣| eeuss影院www天堂免费| 国产V亚洲V天堂无码久久久| 999任你躁在线精品免费不卡| 亚洲精品电影在线| 成人免费视频软件网站| 免费手机在线看片| 亚洲爆乳无码专区| 国产va精品免费观看| 国产精品国产亚洲区艳妇糸列短篇| 亚洲精品国产福利一二区| 久久99免费视频| 中文字幕无码精品亚洲资源网久久 | 亚洲第一综合天堂另类专| 一区国严二区亚洲三区| 国产偷伦视频免费观看| 亚洲va在线va天堂成人| 全亚洲最新黄色特级网站| 麻豆精品成人免费国产片| 亚洲伦理一二三四| 国产亚洲情侣一区二区无码AV| 99免费在线观看视频| 国产成人亚洲精品播放器下载| 亚洲A∨无码无在线观看|