网站大量收购独家精品文档,联系QQ:2885784924

《各种排序算法及其java程序实现》.doc

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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,

您可能关注的文档

文档评论(0)

mwap + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档