java排序方法.doc

上传人:鲁** 文档编号:550818622 上传时间:2024-03-17 格式:DOC 页数:13 大小:35KB
返回 下载 相关 举报
java排序方法.doc_第1页
第1页 / 共13页
java排序方法.doc_第2页
第2页 / 共13页
java排序方法.doc_第3页
第3页 / 共13页
java排序方法.doc_第4页
第4页 / 共13页
java排序方法.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《java排序方法.doc》由会员分享,可在线阅读,更多相关《java排序方法.doc(13页珍藏版)》请在金锄头文库上搜索。

1、java排序方法用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等。插入排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/* author treeroot* since 2006-2-2* version 1.0*/public class InsertSort implements SortUtil.Sort/* (non-Javadoc)* see org.rut.util.algorithm.Sor

2、tUtil.Sort#sort(int)*/public void sort(int data) int temp;for(int i=1;i0)&(datajdataj-1);j-)SortUtil.swap(data,j,j-1); 冒泡排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/* author treeroot* since 2006-2-2* version 1.0*/public class BubbleSort implements SortUtil.Sort/

3、* (non-Javadoc)* see org.rut.util.algorithm.SortUtil.Sort#sort(int)*/public void sort(int data) int temp;for(int i=0;ii;j-)if(dataj1) quickSort(data,i,k-1);if(j-k)1) quickSort(data,k+1,j);/* param data* param i* param j* return*/private int partition(int data, int l, int r,int pivot) dowhile(data+lp

4、ivot);SortUtil.swap(data,l,r);while(l0)int j=stacktop-;int i=stacktop-;pivotIndex=(i+j)/2;pivot=datapivotIndex;SortUtil.swap(data,pivotIndex,j);/partitionl=i-1;r=j;dowhile(data+lpivot);SortUtil.swap(data,l,r);while(lTHRESHOLD)stack+top=i;stack+top=l-1;if(j-l)THRESHOLD)stack+top=l+1;stack+top=j;/new

5、InsertSort().sort(data);insertSort(data);/* param data*/private void insertSort(int data) int temp;for(int i=1;i0)&(datajdataj-1);j-)SortUtil.swap(data,j,j-1); 归并排序:package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/* author treeroot* since 2006-2-2* version 1.0*/public c

6、lass MergeSort implements SortUtil.Sort/* (non-Javadoc)* see org.rut.util.algorithm.SortUtil.Sort#sort(int)*/public void sort(int data) int temp=new intdata.length;mergeSort(data,temp,0,data.length-1);private void mergeSort(int data,int temp,int l,int r)int mid=(l+r)/2;if(l=r) return ;mergeSort(data

7、,temp,l,mid);mergeSort(data,temp,mid+1,r);for(int i=l;i=r;i+)tempi=datai;int i1=l;int i2=mid+1;for(int cur=l;curr)datacur=tempi1+;else if(tempi1= THRESHOLD)mergeSort(data, temp, l, mid);elseinsertSort(data, l, mid - l + 1);if (r - mid) THRESHOLD)mergeSort(data, temp, mid + 1, r);elseinsertSort(data, mid + 1, r - mid);for (i = l; i = mid; i+) tempi = datai;for (j = 1; j = r - mid; j+) tempr - j + 1 = dataj + mid;int a = templ;int b = tempr;for (i = l, j = r, k = l; k = r; k+) if (a b)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号