<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 水煮三國 閱讀(461) 評論(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

    搜索

    •  

    積分與排名

    • 積分 - 210793
    • 排名 - 266

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 永久在线毛片免费观看| 国产无限免费观看黄网站| 久久久久成人片免费观看蜜芽| 亚洲国产综合无码一区二区二三区| 亚洲日本va一区二区三区| 成人免费无码大片A毛片抽搐| 亚洲精品中文字幕无乱码麻豆| 日本黄网站动漫视频免费| 亚洲婷婷在线视频| 91精品免费国产高清在线| 亚洲人成网站在线观看播放动漫| 亚洲精品动漫免费二区| 亚洲综合色婷婷在线观看| 免费无码又爽又刺激毛片| 亚洲国产欧美一区二区三区| 午夜两性色视频免费网站| 日韩欧美亚洲国产精品字幕久久久| 日本免费人成视频播放 | 在线a人片天堂免费观看高清| 亚洲一区二区三区免费视频| 免费观看男人免费桶女人视频| 亚洲人成自拍网站在线观看| 免费乱码中文字幕网站| a毛片免费在线观看| 亚洲美女一区二区三区| 欧洲美熟女乱又伦免费视频| 一级视频免费观看| 亚洲av永久无码精品古装片| 亚洲免费在线视频播放| 亚洲精品天堂无码中文字幕| 国产精品亚洲精品日韩已方| 日本卡1卡2卡三卡免费| 亚洲中文字幕久久精品蜜桃| 亚洲精品国产高清嫩草影院| 国产猛男猛女超爽免费视频| 亚洲一区二区久久| 亚洲国产精品成人久久蜜臀| 91禁漫免费进入| 青青久久精品国产免费看| 亚洲网站视频在线观看| 国产高清视频在线免费观看|