- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《各种排序算法及其java程序实现》.doc
各种排序算法及其java程序实现
2011-11-26 13:12:53 我来说两句
收藏 我要投稿
各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序
冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序
一、冒泡排序(BubbleSort)
1. 基本思想:
两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。
2. 排序过程:
设想被排序的数组R[1..N]垂直竖立,将每个数据元素看作有重量的气泡,根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R,凡扫描到违反本原则的轻气泡,就使其向上漂浮,如此反复进行,直至最后任何两个气泡都是轻者在上,重者在下为止。
【示例】:
49 13 13 13 13 13 13 13
38 49 27 27 27 27 27 27
65 38 49 38 38 38 38 38
97 65 38 49 49 49 49 49
76 97 65 49 49 49 49 49
13 76 97 65 65 65 65 65
27 27 76 97 76 76 76 76
49 49 49 76 97 97 97 97
java代码实现:
/**
02.* 冒泡排序:执行完一次内for循环后,最小的一个数放到了数组的最前面(跟那一个排序算法* 不一样)。相邻位置之间交换
03.*/
04.
05.public class BubbleSort {
06.
07. /**
08. * 排序算法的实现,对数组中指定的元素进行排序
09. * @param array 待排序的数组
10. * @param from 从哪里开始排序
11. * @param end 排到哪里
12. * @param c 比较器
13. */
14. public void bubble(Integer[] array, int from, int end) {
15. //需array.length - 1轮比较
16. for (int k = 1; k end - from + 1; k++) {
17. //每轮循环中从最后一个元素开始向前起泡,直到i=k止,即i等于轮次止
18. for (int i = end - from; i = k; i--) {
19. //按照一种规则(后面元素不能小于前面元素)排序
20. if ((array[i].compareTo(array[i - 1])) 0) {
21. //如果后面元素小于了(当然是大于还是小于要看比较器实现了)前面的元素,则前后交换
22. swap(array, i, i - 1);
23. }
24. }
25. }
26. }
27.
28. /**
29. * 交换数组中的两个元素的位置
30. * @param array 待交换的数组
31. * @param i 第一个元素
32. * @param j 第二个元素
33. */
34. public void swap(Integer[] array, int i, int j) {
35. if (i != j) {//只有不是同一位置时才需交换
36. Integer tmp = array[i];
37. array[i] = array[j];
38. array[j] = tmp;
39. }
40. }
41.
42.
43. /**
44. * 测试
45. * @param args
46. */
47. public static void main(String[] args) {
48. Integer[] intgArr = { 7, 2, 4, 3, 12, 1, 9, 6, 8, 5, 11, 10 };
49. BubbleSort bubblesort = new BubbleSort();
50. bubblesort.bubble(intgArr,0,intgArr.length-1);
51. for(Integer intObj:intgArr){
52. System.out.print(intObj + );
53. }
54. }
55.}
另外一种实现方式:
/**
冒泡排序:执行完一次内for循环后,最大的一个数放到了数组的最后面。相邻位置之间交换
*/
public class BubbleSort2{
public static void main(String[] args){
int[] a = {3,
您可能关注的文档
- 《【穿戴猫论坛】谷歌眼镜开发Mirror API之Java开发》.pdf
- 《【线条灯】【led线条灯】》.pptx
- 《【绿色器件】新照明篇:204栋住宅展现LED照明的未来》.pdf
- 《【美丽中国】精校字幕Wild China-05:Land of the Panda》.doc
- 《【考试大论坛】-Linux实践工程师学习笔记》.doc
- 《【英文】karel-the-robot-learns-java》.pdf
- 《【行业研究】广发证券--TFT-LCD行业深度研究报告--快速崛起中的中国液晶显示行业》.pdf
- 《【贪吃蛇—Java程序员写Android游戏】系列 3. 用J2ME实现Android的Snake Sample详解》.pdf
- 《【达内java培训】Java中HashMap的工作机制 》.docx
- 《【达内嵌入式培训】Linux内核是如何工作详解》.docx
- 专题02+时事热点(精讲课件)2025年中考地理二轮复习讲练测(安徽专用).pptx
- 专题10+经济建设 2025年中考道德与法治二轮复习讲练测(广东专用).pptx
- 专题02+西游记【名著概览】+-+2025年中考语文必读名著演练.pptx
- 专题七+认识国家(课件)-【省心备考】2025年中考地理一轮复习优质课件.pptx
- 第22课《礼记》二则——《大道之行也》(课件)-2024-2025学年八年级语文下册同步备课精品资源.pptx
- 跨学科实践15:制作“龙骨水车”(课件)-2024-2025学年八年级物理下学期项目化课程案例.pptx
- 第13课_辽宋夏金元时期的对外交流(课件)2024-2025学年七年级历史下册同步教学课件.pptx
- 选择题专项讲解——综合类(课件)2025年初中道德与法治中考选择题练习.pptx
- 第21课《庄子》二则——《北冥有鱼》(课件)-2024-2025学年八年级语文下册同步备课精品资源.pptx
- 7.3+感受澳大利亚(第二课时)-2025学年七年级地理下册同步精品课堂(晋教版2024).pptx
最近下载
- 防洪度汛应急预案.doc
- 电商平台的售后服务提升与用户满意度策略.pptx
- 烟机设备操作工基础知识-第三章液压与气动传动知识鉴定要素.docx VIP
- 餐饮店厨房菜品生产制作规范.docx VIP
- 烟机设备操作工基础知识-第二章机械基础知识鉴定要素.doc VIP
- 健身房会计账务处理.docx VIP
- 地铁企业文化(张景霞) 任务一:认知企业文化的内涵 企业文化概述.ppt
- 农民工工资补充协议(2024版).docx VIP
- 部编版语文五年级下册第六单元教材解读大单元集体备课.pptx VIP
- 标准线路施工 手册基础 空客常用ASM,AWM手册线路符号和图例及INTRODUCTION前言介绍.pptx
文档评论(0)