| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 667 人关注过本帖
标题:[分享]java排序法
只看楼主 加入收藏
球球
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:1146
专家分:265
注 册:2005-11-28
结帖率:100%
收藏
 问题点数:0 回复次数:9 
[分享]java排序法

/*这个程序是我在一个帖子上看到的,觉得写的十分的不错,拿出来与大家共享下*/
package com.cucu.test;

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]);
}
}

}

搜索更多相关主题的帖子: java 分享 
2006-07-30 21:37
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
java本身就提供了排序

win32汇编
病毒 加密
目前兴趣所在
2006-07-30 23:37
believe45
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2005-12-7
收藏
得分:0 
又回到了大二上的数据结构第9章,排序。。。。。。
2006-08-01 01:12
shiyide
Rank: 2
等 级:新手上路
威 望:4
帖 子:297
专家分:0
注 册:2006-2-22
收藏
得分:0 

你們還上過

我們列`

上都沒有上過


学好编程,为中国的软件事业出一份力。
2006-08-01 12:08
xhdwell
Rank: 1
等 级:新手上路
帖 子:124
专家分:0
注 册:2006-5-15
收藏
得分:0 

很不错~学过都忘了~再复习遍~~


坚持自己的选择!向着理想迈出了第一步!
2006-08-01 17:01
神经塔
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:1987
专家分:4
注 册:2006-7-1
收藏
得分:0 
还用java自己带的好用,简单!

[shadow=255,red,2]待到秋来九月八,我花开时百花杀。冲天香阵透长安,满城尽是黄金甲。 [/shadow]
2006-08-15 19:43
三颗珠子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-8-11
收藏
得分:0 
我平常排序都是冒泡,java自带的?是哪一种?望解答。。感激。。。

2006-08-16 22:20
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
收藏
得分:0 
楼上的看看这个 我刚写的
import java.util.*;
public class Test
{
public static void main(String [] args)
{
int[] arrays={1,3,4,2,5,7,8,6};
Arrays.sort(arrays);
for(int i=0;i<arrays.length;i++)
System.out.print(arrays[i]);
System.out.println();
}
}


win32汇编
病毒 加密
目前兴趣所在
2006-08-16 22:43
三颗珠子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-8-11
收藏
得分:0 

万分感谢。。。。。


2006-08-16 22:57
无赖
Rank: 1
等 级:新手上路
帖 子:46
专家分:0
注 册:2006-8-17
收藏
得分:0 
学习了啊
2006-08-21 19:52
快速回复:[分享]java排序法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036903 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved