冒泡排序Bubble_Sort

基本原理:对于冒泡排序来说,基本思想是从第一个元素开始,数组中的数据依次和它后面相邻的数据进行比较,即1和2比较,2和3比较,a和a+1比较,直到倒数第二位和倒数第一位的比较,如果顺序不对就进行交换,这样一次下来最大的元素会被放置在最后的位置上【以升序为例,这里是理解冒泡排序的重点。】接着,在进行一次这样的排序,只不过到倒数第二就截止。最后呢就剩第一位置的元素和第二位置的元素进行比较。这个应该比较好理解,就不上图了吧。不过如果有足够的时间,我还是愿意把图补上的。

时间复杂度:显然是O(n^2)

代码:

    static void bubble(int [] a)
    {
        for (int i = 0; i < a.length - 1; i++)
            for (int j = 0; j < a.length - 1 - i; j++)
                if (a[j] > a [j+1])
                {
                    int temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
    }

    public static void main(String []args)
    {
        int [] a = {3, 2, 5, 1, 8, 1, 11, 8};
        bubble(a);
        for (int i : a)
            System.out.print(i+" ");
    }

原文地址:https://www.cnblogs.com/lbrs/p/11886536.html

时间: 2024-10-12 19:49:18

冒泡排序Bubble_Sort的相关文章

排序算法之冒泡排序

冒泡排序 #include <stdio.h> void bubble_sort(int a[],int n) { int i,j,temp; for(i = 0; i < n-1; i++) for(j = 0; j < n-1-i; j++) if(a[j] > a[j+1]) { temp = a[j]; a[j] = a[j+1]; a[j+1] = temp; } return ; } int main(void) { int i; int a[5] = {8,3,

八种排序算法

最近一段时间自己在研究各种排序算法,于是自己写了一个八种排序算法的集合: /************************************************************************* > Copyright (c)2014 stay hungry,stay foolish !!! > File Name: sort.cpp > Author: kanty > Mail: [email protected] > Created Time:

所有的排序、查找算法

import javax.mail.Part; /** * 顺序查找.排序 * * @author 曾修建 * @version 创建时间:2014-7-30 下午04:15:10 */ public class SequentialSearch { public static void main(String[] args) { Integer[] a = {1,2,3,4,5,7,6,88}; //二分查找非递归 System.out.println( "二分查找非递归实现 位置 : &qu

数据结构中常用排序算法

排序常用的算法有:插入算法(直接插入算法.折半插入算法.希尔算法).选择算法(简单选择算法.堆排序算法).快速算法(冒泡排序.快速排序算法) 以下程序给出了各种算法的实现,其接口为void sort(int *array,int len),每个文件实现一个算法, 最后和main.c文件编译实现. 1.直接插入算法: //direct_insert_sort.c [cpp] view plaincopy void sort(int *array,int len) { int tmp,i,j; fo

github开源项目-算法实现之路

算法编程 目录(?)[-] 挑战算法之路 Way to Algorithm 目录页 <挑战算法之路>的源代码可以从GitHub下载,网址链接:点击打开链接 也可以从GoogleCode下载,网址链接:点击打开链接 挑战算法之路 Way to Algorithm 西安交通大学计算机系 林荣彬 电子科技大学信软学院 NEWPLAN 目录页 第2版声明 ..........................................................................

面试题汇总(七)

1.这个程序的出的结果是class Singleton:   _instance = None   def __new__(cls,*args,**kwargs):       print('New')       if cls._instance is None:           print('Create')           cls._instance = super().__new__(cls,*args,**kwargs)       return cls._instance  

冒泡排序(bubble_sort)——Python实现

# 冒泡排序 # 作用:对给出的n个顺序不定的数进行排序 # 输入:任意数组A # 输出:按顺序排列的数组A # 冒泡排序过程 # 第一趟:以第一个数为基准,从最后一位数开始,依次与它比较, #               若大于它,则交换,若小于它,则继续判断前一个数 #               完成一趟后,这个基准数(即第一个数)是所有数里最大的 # 第二趟:以第二个数为基准,从最后一位数开始,依次与它比较, #               若大于它,则交换,若小于它,则继续判断前一个数

经典排序算法 - 冒泡排序Bubble sort

 原文出自于 http://www.cnblogs.com/kkun/archive/2011/11/23/bubble_sort.html 经典排序算法 - 冒泡排序Bubble sort 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子为从小到大排序, 原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环) 第

算法 排序lowB三人组 冒泡排序 选择排序 插入排序

参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性: 经过某种排序后,如果两个记录序号同等,且两者在原无序记录中的先后秩序依然保持不变,则称所使用的排序方法是稳定的,反之是不稳定