ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:16.51KB ,
资源ID:5191516      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5191516.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java中各种排序算法.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Java中各种排序算法.docx

1、Java中各种排序算法/插入排序: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.SortUtil.Sort#sort(int) */ public void sort(int data) in

2、t temp; for(int i=1;i0)&(datajdataj-1);j-) SortUtil.swap(data,j,j-1); /冒泡排序:for(var i=0; iarr.length; i+) for(var j=i+1; j=arr.length-1; j+) if(eval(arri) eval(arrj) temp = arri; arri = arrj; arrj = temp; package org.rut.util.algorithm.support;import org.rut.util.algorithm.SortUtil;/* * author treer

3、oot * since 2006-2-2 * version 1.0 */public class BubbleSort implements SortUtil.Sort /* (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(datajdataj-1) SortUtil.swap(data,j,j-1); /选择排序:package org.rut.util.algorithm.supp

4、ort;import org.rut.util.algorithm.SortUtil;/* * author treeroot * since 2006-2-2 * version 1.0 */public class SelectionSort implements SortUtil.Sort /* * (non-Javadoc) * * see org.rut.util.algorithm.SortUtil.Sort#sort(int) */ public void sort(int data) int temp; for (int i = 0; i i; j-) if (dataj 2;

5、i/=2) for(int j=0;ji;j+) insertSort(data,j,i); insertSort(data,0,1); /* * param data * param j * param i */ private void insertSort(int data, int start, int inc) int temp; for(int i=start+inc;i=inc)&(dataj1) quickSort(data,i,k-1); if(j-k)1) quickSort(data,k+1,j); /* * param data * param i * param j

6、* return */ private int partition(int data, int l, int r,int pivot) do while(data+lpivot); SortUtil.swap(data,l,r); while(l0) int j=stacktop-; int i=stacktop-; pivotIndex=(i+j)/2; pivot=datapivotIndex; SortUtil.swap(data,pivotIndex,j); /partition l=i-1; r=j; do while(data+lpivot); SortUtil.swap(data

7、,l,r); while(lTHRESHOLD) stack+top=i; stack+top=l-1; if(j-l)THRESHOLD) stack+top=l+1; stack+top=j; /new 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.a

8、lgorithm.support;import org.rut.util.algorithm.SortUtil;/* * author treeroot * since 2006-2-2 * version 1.0 */public class 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(dat

9、a,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,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) mergeSor

10、t(data, temp, l, mid); else insertSort(data, l, mid - l + 1); if (r - mid) THRESHOLD) mergeSort(data, temp, mid + 1, r); else insertSort(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

11、, j = r, k = l; k = r; k+) if (a b) datak = tempi+; a = tempi; else datak = tempj-; b = tempj; /* * param data * param l * param i */ private void insertSort(int data, int start, int len) for(int i=start+1;istart) & datajdataj-1;j-) SortUtil.swap(data,j,j-1); /堆排序:package org.rut.util.algorithm.supp

12、ort;import org.rut.util.algorithm.SortUtil;/* * author treeroot * since 2006-2-2 * version 1.0 */public class HeapSort implements SortUtil.Sort /* (non-Javadoc) * see org.rut.util.algorithm.SortUtil.Sort#sort(int) */ public void sort(int data) MaxHeap h=new MaxHeap(); h.init(data); for(int i=0;idata

13、.length;i+) h.remove(); System.arraycopy(h.queue,1,data,0,data.length); private static class MaxHeap void init(int data) this.queue=new intdata.length+1; for(int i=0;idata.length;i+) queue+size=datai; fixUp(size); private int size=0; private int queue; public int get() return queue1; public void rem

14、ove() SortUtil.swap(queue,1,size-); fixDown(1); /fixdown private void fixDown(int k) int j; while (j = k 1) = size) if (j size & queuejqueuej) /不用交换 break; SortUtil.swap(queue,j,k); k = j; private void fixUp(int k) while (k 1) int j = k 1; if (queuejqueuek) break; SortUtil.swap(queue,j,k); k = j; /S

15、ortUtil:package org.rut.util.algorithm;import org.rut.util.algorithm.support.BubbleSort;import org.rut.util.algorithm.support.HeapSort;import org.rut.util.algorithm.support.ImprovedMergeSort;import org.rut.util.algorithm.support.ImprovedQuickSort;import org.rut.util.algorithm.support.InsertSort;impo

16、rt org.rut.util.algorithm.support.MergeSort;import org.rut.util.algorithm.support.QuickSort;import org.rut.util.algorithm.support.SelectionSort;import org.rut.util.algorithm.support.ShellSort;/* * author treeroot * since 2006-2-2 * version 1.0 */public class SortUtil public final static int INSERT =

17、 1; public final static int BUBBLE = 2; public final static int SELECTION = 3; public final static int SHELL = 4; public final static int QUICK = 5; public final static int IMPROVED_QUICK = 6; public final static int MERGE = 7; public final static int IMPROVED_MERGE = 8; public final static int HEAP

18、 = 9; public static void sort(int data) sort(data, IMPROVED_QUICK); private static String name= insert,bubble,selection,shell,quick,improved_quick,merge,improved_merge,heap ; private static Sort impl=new Sort new InsertSort(), new BubbleSort(), new SelectionSort(), new ShellSort(), new QuickSort(),

19、new ImprovedQuickSort(), new MergeSort(), new ImprovedMergeSort(), new HeapSort() ; public static String toString(int algorithm) return namealgorithm-1; public static void sort(int data, int algorithm) implalgorithm-1.sort(data); public static interface Sort public void sort(int data); public static void swap(int data, int i, int j) int temp = datai; datai = dataj; dataj = temp;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1