冒泡排序之Java实现】的更多相关文章

冒泡排序之Java实现 一.方法一 package cn.com.zfc.lesson21.sort; import java.util.Arrays; /** * * @title BubbleSort * @describe 冒泡排序 * @author 张富昌 * @date 2016年10月1日下午3:56:30 */ public class BubbleSortHigh { // 起泡排序是快速排序的基础,但是排序速度较慢. // 基本思想:将序列中第 1 个元素与第 2 个元素进行…
本文对传统的冒泡排序进行了一些优化,减少了循环次数. 时间复杂度 若文件的初始状态是正序的,一趟扫描即可完成排序.所需的关键字比较次数 C 和记录移动次数 M 均达到最小值: C(min)=n-1 , M(min)=0 .所以,冒泡排序最好的时间复杂度为 O(n); 若初始文件是反序的,需要进行  趟排序.每趟排序要进行  次关键字的比较(1≤i≤n-1),且每次比较都必须移动记录三次来达到交换记录位置.在这种情况下,比较和移动次数均达到最大值: 冒泡排序的最坏时间复杂度为O(n^2) . 综上…
1.冒泡排序 package lsg.ap.bubble; import java.util.*; public class BubbleSort { public static void bubbleSort(int[] array) { int temp; // 第一层循环: 表明要比较的次数,即需要比较多少轮 //第二层循环:每个元素依次与每轮的第一个元素(i指示的元素,i会每轮 //递增1,要注意这点)进行比较,每一轮都把最大的元素冒泡到顶部 for(int i=0;i<array.le…
一.排序算法的历史: 排序算法的发展历史几乎和计算机的发展历史一样悠久,而且直到今天,世界范围内依然有计算机科学家正在研究着排序的算法,由此可见排序算法的强大魅力.   我们现在介绍的排序算法都是前任研究的经典成果,具有极高的学习价值和借鉴意义. 排序算法属于算法的一种,而且是覆盖范围极小的一种,虽然排序算法是计算机科学里古老而且研究人数相当多的一张算法,但千万不要把排序算法和广义的计算机算法等同起来,掌握排序算法对程序开发,程序思维的培养都有很大的帮助,但掌握排序算法绝不等于掌握了计算机编程算…
已知一个数组78.75.91.36.72.94.43.64.93.46,使用冒泡排序将此数组有序. 冒泡排序是一个运行时间为O(N²)的排序算法. 算法思想:(已从小到大为例) 78.75.91.36.72.94.43.64.93.46      数组元素 0. 1.   2.  3.  4.  5.  6.  7.  8.  9        数组下标 首先进行第一轮排序.数组长度为array.length. 将index[0]与index[1]有序.若ndex[0]>index[1] 则交换…
package com.rao.sort; import java.util.Arrays; /** * @author Srao * @className BubbleSort * @date 2019/12/4 12:33 * @package com.rao.sort * @Description 冒泡排序 */public class BubbleSort { /** * 冒泡排序 * @param arr */ public static void bubbleSort(int[] a…
public class BubbleSortTest { //冒泡排序 public static void bubbleSort(int[] source) { //外层循环控制控制遍历次数,n个数排序,遍历n - 1次 for (int i = source.length - 1; i > 0; i--) { //每完成一趟遍历,下标为i的位置的元素被确定,下一遍历不再参与比较 for (int j = 0; j < i; j++) { if (source[j] > source…
/** * 功能:冒泡排序法 * 思想:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的排序码, * ,若发现逆序这交换,使得排序码较小的元素逐渐从后部移向前部(从下标较大的单元移向下标) * 较小的单元,,就像水底下的气泡一样逐渐向上冒. * 作者:徐守威 */ package com.xushouwei; public class T4 { /** * @param args */ public static void main(String[] args) { // T…
冒泡排序是数据结构中很经典的排序算法,我的理解:以从小到大的顺序为例,原数组为arr[4] = {5, 6, 2, 3},从最右面的元素开始与相邻元素两两比较,交换位置(小的放在左边):从代码中也容易看出,排序过程分为内外两次循环,外循环决定排序的轮数,内循环产生本轮元素中的最值放在最左边(产生的最值不参与下一轮的排序):如第一轮排序中,从arr[3] = 3开始,3>2则不用交换位置:再比较2<6,交换位置,数组变为{5, 2, 6, 3};再比较2<5, 交换位置,数组变为{2, 5…
冒泡排序是一种交换排序,它的基本思路是: 两两比较相邻记录的关键字,如果反序则交换,知道没有反序的记录位置. 依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.至此第一趟结束,将最大的数放到了最后.在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数…