`

直接选择排序与冒泡排序(java)

阅读更多

很没写排序算法了,忽然就想写一下,写了一个算法程序,本来要写的是冒泡的,之后分析了下,结果写成了直接选择排序;
格式可能像冒泡排序,但思路却是直接选择排序,:
分析了下思路,下面是选择排序:



//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排序算法: 直接插入,希尔排序,选择排序,堆排序,冒泡排序,快速排序,归并排序

    本文将深入探讨Java编程语言中实现的七种主要排序算法:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序以及归并排序。每种算法都有其独特性,适用于不同的场景和数据特性。 1. **直接插入排序**:...

    java基础冒泡排序.ppt

    冒泡排序详解,简单而详细的讲清楚了,什么是冒泡排序。 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首...

    Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法

    Java代码-排序-直接插入排序、希尔排序、直接选择排序、冒泡排序、堆排序、快速排序、归并排序中部分排序以及算法-贪心法,大家可以将源码下载下来进行学习,附带着注释和解释,有不理解的可以找博主一起探讨,共同...

    java 冒泡排序 数组冒泡排序

    下面我们将深入探讨冒泡排序的工作原理、Java代码实现以及其效率分析。 ### 冒泡排序的工作原理 冒泡排序的基本思想是,重复地走访过要排序的元素列表,依次比较相邻的两个元素,如果它们的顺序(如从小到大)错误...

    JAVA排序大全 冒泡 快速 选择 归并排序

    JAVA排序大全 冒泡 快速 选择 归并排序

    java冒泡排序代码

    java冒泡排序代码,亲测能用,控制台输入数据,自动排序

    java冒泡排序java冒泡排序集锦方法!

    以上三个知识点总结了关于 Java 排序的一些基本应用,包括基础的冒泡排序算法、使用标准库 `Collections.sort()` 进行排序以及使用 `RuleBasedCollator` 实现国际化排序等。这些技术对于编写高效、可维护的 Java ...

    java算法,快速排序、冒泡排序、选择排序

    java算法,快速排序、冒泡排序、选择排序 快速排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51822361 冒泡排序文章:http://blog.csdn.net/yanwenyuan0304/article/details/51819045

    选择排序,冒泡排序算法(JAVA源代码)

    在提供的压缩包文件中,你可能会找到三个文件:一个测试类,以及分别实现选择排序和冒泡排序的Java源代码文件。测试类通常包含了调用这两个排序算法的实例,并可能包含了一些测试数据,以便于验证算法的正确性。你...

    应用Java和Python实现冒泡排序算法

    冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python实现冒泡排序算法 冒泡排序:应用Java和Python...

    冒泡和选择排序Java代码实现

    与冒泡排序不同,选择排序不是通过相邻元素的交换来排序,而是每次遍历时找到当前未排序部分的最小(或最大)元素,然后将其放到已排序部分的末尾。这种方法避免了不必要的交换,但在最坏情况下,其效率与冒泡排序...

    java选择排序,冒泡排序代码,二分查找

    自己写的java选择排序,冒泡排序代码,二分查找,还有500个小孩手拉手数三退一问题,供初学者参考一下

    排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht

    排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht

    选择排序、冒泡排序、插入排序

    本文将详细介绍三种经典的排序算法:选择排序、冒泡排序和插入排序,并结合Java代码进行分析。 ### 1. 选择排序(Selection Sort) 选择排序的主要思想是每次从待排序的数据元素中选出最小(或最大)的一个元素,...

    java直接选择、直接插入、冒泡排序算法源代码(blueJ打包)

    本资源提供了三种经典的排序算法:直接选择排序、直接插入排序和冒泡排序的源代码实现,这些代码以类的形式封装,方便理解和维护。 1. 直接选择排序: 直接选择排序的基本思想是从待排序的数据元素中选出最小(或...

    java 冒泡排序方法

    ### Java冒泡排序方法详解 #### 一、冒泡排序简介 冒泡排序是一种简单的排序算法,它重复地遍历待排序的数列,依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复进行的,直到...

    JAVA快速,选择,冒泡数组排序

    本主题将详细介绍三种基本的排序算法:快速排序、选择排序和冒泡排序,以及它们在Java中的实现。 1. **快速排序**: 快速排序是一种高效的分治算法,由C.A.R. Hoare在1960年提出。其主要思想是通过一趟排序将待排...

    JAVA冒泡排序和快速排序算法

    在JAVA中,实现这两种排序算法可以使用面向对象的特性,创建一个类如`MaopaoKuaisu.java`,在这个类中定义两个方法,分别实现冒泡排序和快速排序。类的结构可能如下: ```java public class MaopaoKuaisu { public...

    常用排序算法的java实现(冒泡、插入、选择、希尔、归并、快排)

    在Java中,冒泡排序的基本思路是使用两个for循环,外层循环控制比较的轮数,内层循环用于两两比较并交换。改进的冒泡排序通常包括设置标志位来检测是否已经完成排序,以及添加一个提前退出循环的条件,当某次遍历...

    用java实现冒泡排序法

    下面我们将详细介绍如何用Java实现冒泡排序及其工作原理。 冒泡排序的工作原理: 冒泡排序的基本思想是重复地遍历待排序的序列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历序列的工作是重复地...

Global site tag (gtag.js) - Google Analytics