算法描述:对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和交换后,n个记录中的最大记录将位于第n位;然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较的记录只剩下一个为止。
冒泡排序是非常好理解的,以从小到大排序为例,每一轮排序就找出未排序序列中最大值放在最后。
设数组的长度为N:
(1)比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。
(2)这样对数组的第0个数据到N-1个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1个位置。
(3)N=N-1,如果N不为0就重复前面二步,否则排序完成。
以上就是冒泡排序的基本思想,按照这个定义很快就能写出代码。
package sorting; /** * 冒泡排序 * 平均O(n^2),最好O(n),最坏O(n^2);空间复杂度O(1);稳定;简单 * @author zeng * */ public class BubbleSort { public static void bubbleSort(int[] a){ int n = a.length; int temp = 0; for (int i=0;i<n;i++){ for (int j=0;j<n-i-1;j++){ if(a[j]<a[j+1]){ temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } } } } public static void main(String[] args){ int[] a ={49,38,65,97,76,13,27,50}; bubbleSort(a); for (int j:a) System.out.print(j+" "); } }
总结
以上就是本文关于Java冒泡排序简单实现的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题。如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
本文向大家介绍Java简单数组排序(冒泡法),包括了Java简单数组排序(冒泡法)的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java简单数组排序(冒泡法)。分享给大家供大家参考,具体如下: 希望本文所述对大家Java程序设计有所帮助。
本文向大家介绍python冒泡排序简单实现方法,包括了python冒泡排序简单实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python冒泡排序简单实现方法。分享给大家供大家参考。具体实现方法如下: 运行结果如下: [115, 14, 246, 125, 94, 78, 275, 163, 64, 72, 245, 1, 97, 53, 86, 270, 137, 69, 74,
冒泡排序(Bubble Sort)是常用的数组排序算法之一,它以简洁的思想与实现方法而备受青睐,也是广大学习者最先接触的一种排序算法。 冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。 冒泡排序的算法比较简单,排序的结果稳定,但时间效率不太高。 Java
本文向大家介绍Python实现冒泡,插入,选择排序简单实例,包括了Python实现冒泡,插入,选择排序简单实例的使用技巧和注意事项,需要的朋友参考一下 本文所述的Python实现冒泡,插入,选择排序简单实例比较适合Python初学者从基础开始学习数据结构和算法,示例简单易懂,具体代码如下: 感兴趣的朋友可以动手测试一下本文实例,相信会有新的收获。
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 作为最简单的排序算法之一,冒泡排序给我的感觉就像 Abandon 在单词书里出现的感觉一样,每次都在第一页第一位
1. 前言 本节内容是排序算法系列之一:冒泡排序,主要讲解了冒泡排序的主体思路,选取了一个待排序的数字列表对冒泡排序算法进行了演示,给出了冒泡排序算法的 Java 代码实现,帮助大家可以更好地理解冒泡排序算法。 2. 什么是冒泡排序? 冒泡排序(Bubble Sort),是计算机科学与技术领域中较为简单的一种排序算法。 它重复地遍历要排序的序列,会依次比较两个相邻的元素,如果发现两个相邻的元素顺序