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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

排序算法Word文档格式.docx

1、i =0;i-) while(2*i+1n) j = 2*i+1; if (j+1) if(ajaj+1) j+; if(aiaj) t = ai; /交换数据 ai = aj; aj = t; i = j; else break; /输出构成的堆 System.out.println(原数据构成的堆:); for(h =0;h n;h+) System.out.print( + ah); /输出n for(i=n-1;0; t = a0; /于第i 个记录交换 a0 = ai; ai = t; k =0; while(2*k+1i) j = 2*k+1;aj+1) if(ak aj) t =

2、 ak; ak = aj; k = j; elseThe +(n-i)+times result is: /输出每步排序的结果 for(h=0;h+)+ah); System.out.println();二、 交换排序1、 冒泡排序(1)、对数组中的各数据,依次比较相邻的两个元素的大小。 (2)、如果前面的数据大于后面的数据,就交换着两个数据。经过第一轮的多次比较排序后,便可把最小的数据排好。(3)、再用同样的方法把剩下的数据逐个进行比较,最后便可按照从小到大的顺序排好数组各数据的大小。/* public static int BubbleSort(int numbers) int temp;

3、 /中间变量,交换变量用 int j; for (int i = 0; i numbers.length; i+) /从小到大的排列顺序 for (j = i + 1; j = numbersj) /依次比较 temp = numbersi; numbersi = numbersj; numbersj = temp; for(int h = 0; h h+) + numbersh); /Output return numbers; */ /冒泡排序2、 快速排序(1)、设定一个分界值,将数组分成左右两部分(2)、将大于等于分界值的数据集中到数组右边,小于的集中到左边(3)、然后,左边和右边的数

4、据可以独立排序(4)、重复上述过程,递归定义。public static void QuickSort(int a,int left,int right) int f,t; int rtemp = right ,ltemp = left; f = a(right+left)/2; /分界值 while(ltemp rtemp) while(altemp -rtemp; if (ltemp = rtemp) t = altemp; altemp = artemp; artemp = t; if(ltemp = rtemp) ltemp+; if (left rtemp) QuickSort(a,

5、left,ltemp-1); /递归调用 if(ltemp right) QuickSort(a,rtemp+1,right);三、 插入排序1、 插入排序先比较前两个数的大小,再将后面的数按照大小插入到合适的位置去。比如最小则插入到第一位前面,比当前数还要大则插入到最后面。2、 Shell排序(效率较高的一种排序方法)(1)、将有n个元素的数组分成n/2个数字序列,第一个数据和第n/2+1个数据为一对,(2)、依次循环使每一个序列对排好顺序(3)、然后,再变为n/4个序列,再次排序(4)、不断重复上述过程,直至序列减为最后一个。四、 合并排序首先将含有n个节点的待排序数据序列看做有n个长度为

6、1的有序子表组成,将他们两两合并,得到长度为2的若干有序子表;然后,再对这些子表进行两两合并,得到长度为4的若干有序子表;,重复上述过程,一直重复到最后的子表长度为n,从而完成排序过程。public static void mergeOne(int a,int b,int n,int len) /完成合并一次的方法,在mergeSort中调用,避免mergeSort处理中造成递归 int i,j,k,s,e; s = 0; while(s+len=n) e=n-1; /相邻有序段合并 k = s; i = s; j = s +len; while (is+len&j=e)=aj) bk+ =

7、ai+; bk+ = aj+;s+len) while (j s = e+1; if(s for(;sn;s+) bs = as;public static void mergeSort(int a,int n) /合并排序 int h,count,len,f; count = 0; /排序步骤 len = 1; /有序子列的长度 f = 0; /变量f作为标志 int p = new intn; while(len n) if (f=1) mergeOne(p,a,n,len); /p合并到a else mergeOne(a,p,n,len); /a合并到p len = len*2; /增加有序序列的长度 f = 1-f; /标志量,每次循环一次后改变f的值,使数组按对应的长度大小合并 count+;第 + count + times sort a.length; if(f=1)h ah = ph;

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

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