<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

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 91成人免费观看| 亚洲一区无码精品色| 亚洲av成人一区二区三区观看在线 | 亚洲高清国产拍精品青青草原| 亚洲依依成人亚洲社区| 亚洲?V无码成人精品区日韩| 青青操免费在线观看| 亚洲一级片在线观看| 亚洲色婷婷综合开心网| 国产91色综合久久免费| 曰批免费视频播放在线看片二| 久久久久亚洲精品美女| 国产精品嫩草影院免费| 日韩精品免费视频| 久久综合亚洲色hezyo| 亚洲三级电影网站| 亚洲人成无码www久久久| 国产情侣激情在线视频免费看| 一个人看的www免费高清 | 一级免费黄色大片| 亚洲午夜国产精品无卡| 亚洲国产精品无码专区影院 | 久久青青草原亚洲av无码| 免费电视剧在线观看| 午夜影院免费观看| 免费大片av手机看片高清| 亚洲一区二区三区免费视频| 国产亚洲av片在线观看播放| 国产精品免费看久久久无码| av无码免费一区二区三区| a级毛片在线视频免费观看| 国产亚洲精品美女2020久久| 亚洲中文无码a∨在线观看| 亚洲va无码手机在线电影| 亚洲国产婷婷综合在线精品| 午夜爱爱免费视频| 综合在线免费视频| 亚洲一级毛片免费在线观看| 免费成人在线电影| 特级做a爰片毛片免费看| 亚洲精华国产精华精华液好用|