欢迎来到天天文库
浏览记录
ID:51699361
大小:38.50 KB
页数:2页
时间:2020-03-15
《冒泡排序原理和JAVA实现.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、冒泡排序原理和JAVA实现分类: Algorithm2010-12-1716:23 1658人阅读 评论(1) 收藏 举报javastringclassnull冒泡排序是一种比较排序,下面我实现一个从小到大的冒泡排序:先定义两个变量: 待排序数组:int[]source; 数组长度 length=source.length; 原理如下:1、开始:有length-1次循环,每次参与循环的是未排序的数。第一次参与循环的是整个数组,因为假设整个数组是无序的。 每次循环需要设置一个标志位:booleanfl
2、ag=false;表示循环过程中是否产生了交换。2、过程:循环过程中,相邻的两个元素进行比较,如果source[j]>source[j+1],则交换两者顺序,同时标志位flag=true;表示产生了交换。每一次循环结束后,最大数沉到未排序部分的尾部,每次循环找出一个最大数。3、结束:每次循环结束后,如果标志位flag未改变的话,证明未排序的部分中没有source[j]>source[j+1],即未排序部分已经有序,这时,跳出循环,排序结束。 或者length-1次循环结束后,数组有序。 为什么是leng
3、th-1次而不是length循环,因为每次循环找出一个最大数,沉下去,length-1次循环后,只剩下一个元素,不需要进行任何比较,它就是最小的。 JAVA代码如下: [java] viewplaincopy1.package sort; 2.import java.util.Scanner; 3.public class bubbleSort { 4. public void sort(int[] source){ 5. int length = source.length; 6
4、. boolean flag = false; 7. for(int i=1;i<=length-1;++i){ 8. flag = false; 9. for(int j=0;j source[j+1]){ 11. int temp = source[j]; 12.
5、 source[j] = source[j+1]; 13. source[j+1] = temp; 14. flag = true; 15. } 16. } 17. if(flag == false) 18. break; 19. } 20. } 21. 22. publ
6、ic static void main(String[] args){ 23. Scanner in = new Scanner(System.in); 24. bubbleSort bs = new bubbleSort(); 25. while(in != null){ 26. int num = in.nextInt(); 27. int[] source = new int[num]; 28.
7、 for(int i=0;i8、(); 36. } 37. } 38.} 分享到:
8、(); 36. } 37. } 38.} 分享到:
此文档下载收益归作者所有