java排序链表冒泡排序

Java Sorting is one of the many aspects of java interview questions. In this post, we will see java bubble sort example and write a program for bubble sort.

Java排序是Java面试问题的众多方面之一。 在这篇文章中,我们将看到Java冒泡排序示例并编写一个冒泡排序程序。

Bubble sort is also known as the exchange sort. It is the simplest algorithm for sorting numbers.

冒泡排序也称为交换排序。 这是最简单的数字排序算法。

气泡排序算法 (Bubble Sort Algorithm)

  • In bubble sort, the array of integers is traversed from index 0 to length-1.在冒泡排序中,整数数组从索引0遍历到length-1。
  • The value at 0th position is compared with the value at 1st position and if the later is small, it’s swapped.将第0位的值与第1位的值进行比较,如果后者较小,则将其交换。
  • The comparison is moved from the 0th index to length-1 index so that after the first iteration, the last index has the biggest value.比较从第0个索引移到第1个长度索引,因此在第一次迭代之后,最后一个索引具有最大的值。
  • The same process is repeated again from 0th to length-1 index. After (length-1) iteration, the array is sorted.从0th到length-1索引再次重复相同的过程。 在(length-1)迭代之后,对数组进行排序。
  • In worst-case, the complexity of bubble sort is O(n2) and in best-case, the complexity of bubble sort is Ω(n).在最坏情况下,冒泡排序的复杂度为O(n2),在最坏情况下,冒泡排序的复杂度为Ω(n)。

Java中的冒泡排序 (Bubble Sort in Java)

Here is the implementation of Bubble Sort in Java program.

这是Java程序中的冒泡排序的实现。

import java.util.Arrays;public class BubbleSort {public static void main(String args[]) {int arr[] = { 5,4,3,2,1 };int arr1[] = { 1,2,3,4,5 };System.out.println("Array after sorting in ascending order:"+Arrays.toString(bubbleSortAscending(arr)));System.out.println("Array after sorting in descending order:"+Arrays.toString(bubbleSortDescending(arr1)));}public static int[] bubbleSortAscending(int[] arr){int temp;for(int i=0; i < arr.length-1; i++){for(int j=1; j < arr.length-i; j++){if(arr[j-1] > arr[j]){temp=arr[j-1];arr[j-1] = arr[j];arr[j] = temp;}}//check that last index has highest value in first loop,// second last index has second last highest value and so onSystem.out.println("Array after "+(i+1)+"th iteration:"+Arrays.toString(arr));}return arr;}public static int[] bubbleSortDescending(int[] arr){int temp;for(int i=0; i < arr.length-1; i++){for(int j=1; j < arr.length-i; j++){if(arr[j-1] < arr[j]){temp=arr[j-1];arr[j-1] = arr[j];arr[j] = temp;}}//check that last index has highest value in first loop,// second last index has second last highest value and so onSystem.out.println("Array after "+(i+1)+"th iteration:"+Arrays.toString(arr));}return arr;}}

The above program is for sorting in ascending as well as descending order using bubble sort algorithm.

上面的程序用于使用冒泡排序算法按升序和降序进行排序。

Output of the above program is:

上面程序的输出是:

Array after 1th iteration:[4, 3, 2, 1, 5]
Array after 2th iteration:[3, 2, 1, 4, 5]
Array after 3th iteration:[2, 1, 3, 4, 5]
Array after 4th iteration:[1, 2, 3, 4, 5]
Array after sorting in ascending order:[1, 2, 3, 4, 5]
Array after 1th iteration:[2, 3, 4, 5, 1]
Array after 2th iteration:[3, 4, 5, 2, 1]
Array after 3th iteration:[4, 5, 3, 2, 1]
Array after 4th iteration:[5, 4, 3, 2, 1]
Array after sorting in descending order:[5, 4, 3, 2, 1]

As we can see that in every iteration, the last index is getting sorted and it takes (array length – 1) iterations for sorting.

正如我们看到的那样,在每个迭代中,最后一个索引将被排序,并且需要(数组长度– 1)次迭代才能进行排序。

GitHub Repository.GitHub Repository中签出完整的示例和更多排序算法实现。

翻译自: https://www.journaldev.com/557/bubble-sort-java

java排序链表冒泡排序

java排序链表冒泡排序_Java中的冒泡排序相关推荐

  1. java冒泡排序内外循环_java中的冒泡排序、for循环的嵌套使用以及接口与抽象类的区别。...

    一.java冒泡排序. java中的冒泡排序为一种简单的交换排序方法.其基本思路是从头开始扫描需要排序的元素,在扫描的过程中依次的对相邻的元素进行比较,将关键字值大的元素后移,每经过一趟排序后,关键值 ...

  2. java 排序 1和1_新手入门-冒泡排序和选择排序第一节排序1.1排序概述排序(

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 新手入门-冒泡排序和选择排序 第一节排序 1.1排序概述 排序(sorting)的功能是将一个数据元素的任意序列,重新排列成一个按关键字有序的序列.  ...

  3. java排序 面试题_Java八大排序(面试答题!)

    八大排序(重点!!) ​排序算法大体可分为两种: 1.比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等. 2.非比较排序,时间 ...

  4. java排序 面试题_java【排序】面试题

    排序 选择排序 基本思想 每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完. 简单理解:每个元素都和它后面的元素比较,只要后面的元素比它大就交 ...

  5. java排序算法代码_Java实现八种排序算法(代码详细解释)

    package八大排序算法;importjava.util.Arrays;importorg.junit.Test;/*** 1.插入排序 直接插入排序.希尔排序 折半插入排序 * 2.交换排序 冒泡 ...

  6. java排序的例子_Java的8大排序的基本思想及实例解读

    本文主要详解了Java语言的8大排序的基本思想以及实例解读,详细请看下文: 8种排序之间的关系: 1, 直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经 ...

  7. java中有没有栈_Java中堆和栈有什么区别

    stack 和 heep 都是内存的一部分stack 空间小,速度比较快, 用来放对象的引用heep 大,一般所有创建的对象都放在这里.栈(stack):是一个先进后出的数据结构,通常用于保存方法(函 ...

  8. java 定义整数数组_JAVA中数组的正确定义方法是什么?

    数组是有序数据的集合,数组中的每个元素具有相同的数组名和下标来唯一地确定数组中的元素. §5.1一维数组 一.一维数组的定义 type arrayName[]; 其中类型(type)可以为Java中任 ...

  9. java可以多重继承吗_Java中的多重继承与组合vs继承

    java可以多重继承吗 有时我写了几篇有关Java继承,接口和组成的文章. 在这篇文章中,我们将研究多重继承,然后了解组成优于继承的好处. Java中的多重继承 多重继承是创建具有多个超类的单个类的能 ...

最新文章

  1. 我与前端之间不得不说的三天两夜之javaScript
  2. 开源企业IM免费企业即时通讯ENTBOOST V2014.177版本号正式公布
  3. LeetCode-337 House Robber III
  4. Java集合从菜鸟到大神演变
  5. TabError的解决方法
  6. Spring中AOP开发步骤
  7. idea引入外部jar,运行项目不报错,使用maven打war包install/package时报程序包不存在等
  8. spring和mybatis结合做简单的增删查改系统_搭建后台系统权限系统的经验总结
  9. interlib系统服务器,Interlib图书馆集群管理系统
  10. pc客户端软件自动化测试工具,PC客户端自动化测试工具--pywinauto
  11. 阿里云ECS服务器的搭建过程小记
  12. 关于php的外文论文,php毕业设计外文翻译--通过PHP访问MySQL(适用于毕业论文外文翻译+中英文对照).doc...
  13. 国家新标准上线,妈妈再也不用担心我吃辣条啦!
  14. 如何获取免费的数字货币历史数据
  15. python开方 运算符_[转载] Python中的算数运算符
  16. 智慧屏鸿蒙,荣耀智慧屏体验评测:鸿蒙OS首款产品,真正的智慧中心
  17. 计算机基础知识好学吗,计算机编程好学吗 需要什么基础知识?
  18. tesseract的安装
  19. LeetCode231打家劫社Ⅱ(动态规划)
  20. HDoj 2604 queuing

热门文章

  1. 接口的隐式和显式实现
  2. JSP数据库操作和调用自己写的java类
  3. 技术专题之-技术概述的目录
  4. [转载] Python内置函数-min函数和max函数-详解
  5. [转载] Java:简述Java中的自定义异常
  6. 【题解】SDOI2018战略游戏
  7. iOS 中delegate的理解与使用(传值)
  8. 高吞吐低延迟Java应用的垃圾回收优化
  9. Android中GridView实现互相添加和删除
  10. pku1631 Bridging signals