首 页 学校简介 新闻动态 课程详解 师资力量 招生问答 就业广场 项目展示 在线报名 在线咨询 学习园地 证书查询 学习交流
陈老师
点击这里给我发消息
贺老师
点击这里给我发消息
咨询电话:
0719-8453777
0719-8453888
 
 学习园地
JAVE学习
·NET学习
SQL学习
学习心得
考试相关
其他
强大的
学术支持
权威认证
国家认可
培养实际
工作技能
先进产品
优质服务
项目实习
光明的
就业前景
报名咨询:
0719-8453777
0719-8453888
就业服务:
0719-8453555
传真:
0719-8453556
学校所在位置
导航: 十堰北大青鸟 官方网站 → 学习园地 → JAVE学习 → 信息正文
一个Java的排序算法代码
文章来源:本站原创   点击数:  更新时间:2006-8-28  字体:【

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


信息录入:master02    责任编辑:master02 
  • 上一篇信息:

  • 下一篇信息:

  •  
    关于我们 | 人员招聘 | 联系我们 | 学校地图 | 友情链接 | 在线电视 | 员工培训 | 相关链接 | 用户中心 |

    Copyright © 2007-2010 Www.Syaccp.Com Inc. All Rights Reserved
    地址:湖北省十堰市柳林路柳小巷6号(原警察学校)    邮编:442000   
    电话:0719-8453777  8453888  8687886    传真:0719-8453556   
    E-mail:syaccp@syaccp.com   鄂ICP备:08001150

    咨询:陈老师 贺老师   运维:追梦