很没写排序算法了,忽然就想写一下,写了一个算法程序,本来要写的是冒泡的,之后分析了下,结果写成了直接选择排序;
格式可能像冒泡排序,但思路却是直接选择排序,:
分析了下思路,下面是选择排序:
//a[0]与a[1]比较,如果a[0]大于a[1],则交换位置,小的数存在a[0]中,大的数存在a[1中];否则不交换;然后,j++;变成了a[0]与a[2]较,所以第一次执行内层for循环
实际上是a[0]与与它后面的a[1]、a[2]..a[6]都进行了比较,最小的数存在a[0]中了;第二次执行内层for循环时,从a[1]开始比较,a[0]不再参与比较了!......以此类推
总结了一下选择排序基本思路:
第一次内层循环,选择一个最小的数放在第一个位置(a[0]);第二次内层循环,选择次最小的数,放在第二个位置(a[1]);.......整个循环结束.
而冒泡排序的基本思路是:
第一次 内层循环首先第一个数a[0]与第二个数a[1]比较(从小到大),然后第二个数a[1]与第三个数a[2]比较;第三个数a[2]与第四个数a[3]......第一内层循环结束;第二次内层循环(这里有个问题,就是每一次内层循环结束后,在最右边会产生一个不需要比较的数,循环在这里要控制好)还是第一个数a[0]与第二个数a[1]比较;第二个数a[1]与第三个数a[2]比较;到a[4]与a[5]比较完后,就不用比较了,因为第一次比较时,最大的数已经在最右边了(相当于是最大的数往上冒)!第一次内循环,就少比较一次;这样直到结束;
下面才是正确的冒泡排序
改进冒泡排序算法:通过添加标志位。如果一趟排序没有数据进行交换(也就是没有执行if块代码),说明后面的顺序已经是正确的,没有再必要冒泡了,这样可以提高算法性能
分享到:
相关推荐
JAVA排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序,包括算法的详细介绍,以及对几种算法的详细测试
冒泡排序详解,简单而详细的讲清楚了,什么是冒泡排序。 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首...
Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...
JAVA排序大全 冒泡 快速 选择 归并排序
java冒泡排序代码,亲测能用,控制台输入数据,自动排序
java算法,快速排序、冒泡排序、选择排序 快速排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51822361 冒泡排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51819045
java冒泡排序集锦方法!所有的方法都有!很不错的!希望对大家有帮助哈哈!
java 冒泡排序方法,java 冒泡排序方法。
简单的选择排序,冒泡排序源代码,一个文件是测试类,另外两个分别是选择排序和冒泡排序的代码
自己写的java选择排序,冒泡排序代码,二分查找,还有500个小孩手拉手数三退一问题,供初学者参考一下
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
这个程序根据冒泡排序从大到小,从小到大的把数组里的元素进行了排序,程序思想很清晰
详细介绍选择排序、冒泡排序、插入排序且有相应的代码分析
java 冒泡排序法 PPT文档java 冒泡排序法 PPT文档java 冒泡排序法 PPT文档java 冒泡排序法 PPT文档
* 冒泡排序: * 每次在无序队列里将相邻两个数一次进行比较, * 将小数调到前面,逐次比较,直至将最大的数移到 * 最后。将剩下的N-1个数继续比较,将次大数移至 * 倒数第二位。
快速排序、归并排序、希尔排序、冒泡排序、选择排序、插入排序等8中排序方式原理分析java实现
java 冒泡排序法 java 冒泡排序法
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至...
用java实现了以下算法: 1、冒泡排序、冒泡排序的两种改进。 2、插入排序。 3、选择排序。 4、希尔排序。 5、归并排序。 6、快速排序。
JAVA冒泡排序和快速排序算法,符合实验报告要求哦