交换排序之冒泡排序

原创 2016年05月30日 14:27:46

交换排序

交换排序的基本思想是:两两比较待排序记录的关键字,发现记录的次序相即交换,直到没有反序的为止。应用中思想的排序算法有冒泡排序和快速排序。

冒泡排序

冒泡排序算法就是交换排序的一种直接的简单的应用。第一轮循环时,从一个元素开始,将第一个元素与第二个元素关键字比较,出现逆序则交换,然后比较第二个和第三个,。。。,依次下去,则第一轮循环可以将最大的数放到最后(假设正序)。第二轮循环针对剩下的n1个元素。

该算法的Java实现代如下

package com.lyn.thinkinginjava.chapter6;

public class BubbleSort {

    public static void main(String[]args){
        int[] A={1,3,4,2,6,9,8,5,7};
        bubbleSort(A);
        for(int i=0;i<A.length;i++){
            System.out.println(A[i]);
        }
    }

    public static void swap(int[] A, int i,int j){
        int temp=A[i];
        A[i]=A[j];
        A[j]=temp;
    }

    public static void bubbleSort(int[] A){
        int n=A.length;
        for(int i=0;i<n;i++){
            for(int j=i;j<n;j++){
                if(A[j]<A[i]){
                    swap(A,i,j);
                }
            }

        }
    }


}

冒泡排序算法的时间复杂度
n1+...+3+2+1=O(n2)

相关文章推荐

交换排序\冒泡排序.

  • 2013年04月05日 17:56
  • 21KB
  • 下载

交换排序(冒泡排序、快速排序)

冒泡排序                               排序过程:      设数组长度为n,按从小到大排序       1 .比较相邻的前后二个数据,如果前面数据...

第16周实践项目-交换排序之冒泡排序

问题 /* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:王敏 *完成日期...

算法分析-交换排序(冒泡排序 & 快速排序)

交换排序 1.冒泡排序 原理:双层循环,不断判断前后两个数的大小,交换位置。每次循环将一个最大或最小的数带到最前或最后。 要点:设计交换判断条件,提前结束以排好序的序列循环。 ...

第16周项目交换排序之冒泡排序

问题及代码: /* * Copyright (c) 2015, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称: main.cpp * 作者: *...

Java内部排序(三)-(交换排序法之冒泡排序)

对于包含n个数据的一组记录,在最坏的情况下,冒泡排序需要进行n-1趟比较。 第一趟:依次比较 0 和 1、 1 和 2、2 和 3、……n-2 和 n-1索引处的元素,如果发现第一个数据大于...

交换排序算法:冒泡排序-Bubble Sort

基本思想排序思想对n个记录的排序码序列进行n-1次扫描。每次扫描时,都从下到上对相邻的两个排序码进行比较,如果不符合由小到大的顺序,就将他们交换位置。 1. 经过第一次扫描,就能从n-1对相邻排序...

第十五周项目1 验证算法(3)交换排序之冒泡排序

用序列{57, 40, 38, 11, 13, 34, 48, 75, 6, 19, 9, 7}作为测试数据,运行并本周视频中所讲过的算法对应 程序,观察运行结果并深刻领会算法的思路和实现方法: ...

数据结构例程——交换排序之冒泡排序

本文是[数据结构基础系列(9):排序]中第4课时[交换排序之冒泡排序]的例程。冒泡排序#include #define MaxSize 20 typedef int KeyType; //定义...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:交换排序之冒泡排序
举报原因:
原因补充:

(最多只允许输入30个字)