本站首页    管理页面    写新日志    退出


«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

快升级了....


我的分类(专题)

日志更新

最新评论

留言板

链接

发几个常上的网吧^-^ 

JavaResearch:

http://www.javaresearch.org

CSDN:

http://java.csdn.net/

源码信息网:

http://www.aspinfo.cn/

AdvJAVA:

http://www.advjava.com/

我的论坛itmm:

http://itmm.5d6d.com


Blog信息
blog名称:程序员之路
日志总数:61
评论数量:215
留言数量:4
访问次数:461179
建立时间:2006年5月8日




[源码分享]Java排序算法
文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯

noahj 发表于 2006/5/23 19:38:22

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  


阅读全文(17305) | 回复(5) | 编辑 | 精华
 


回复:Java排序算法
文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯

hunk2003(游客)发表评论于2006/12/27 11:19:14

你好,您的插入排序法有问题, 有时间交流一下好吗 msn:luozhy2004@hotmail.com QQ:475903393


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:Java排序算法
文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯

路人(游客)发表评论于2007/7/3 16:06:35

冒泡排序有问题,我来改正哈,参考下: for(int i=0;i<vec.length;i++){      for(int j=vec.length-1;j>i;j--){       if(vec[j]>vec[j-1]){        temp=vec[j-1];        vec[j-1]=vec[j];        vec[j]=temp;       }      }     }     System.out.println("冒泡排序运行如下:");     for(int i=0;i<vec.length;i++){      System.out.println(vec[i]);     }

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:Java排序算法
文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯

路人(游客)发表评论于2007/8/29 17:53:48

是不是快速排序也有错呀

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:Java排序算法
文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯

sdfdsf(游客)发表评论于2008/4/1 10:11:24

sdfsdfsdfsdfsdfsdfdsfsdf

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


回复:Java排序算法
文章收藏,  网上资源,  读书笔记,  软件技术,  电脑与网络,  科学研究,  校园生活,  职业生涯

linpyi(游客)发表评论于2008/9/25 9:28:46

for (int k = 0; k < 1000000; k++) {        for (int i = 0; i < vec.length; i++) {          for (int j = i+1; j < vec.length; j++) {            if (vec[j] > vec[i]) {              temp = vec[i];              vec[i] = vec[j];              vec[j] = temp;            }          }        }      } 选择排序

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.039 second(s), page refreshed 144757770 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号