冒泡排序思想解析及其实现(java)(1)

来源:互联网 发布:landesk软件下载 编辑:程序博客网 时间:2024/05/22 17:44

1.算法原理(从前往后)

(1)假设元素总数为n,用第一个元素依次和后面n-1个元素相比较,条件满足则交换;
(2)用第二个元素依次和后面n-2个元素想比较,条件满足则交换;
(3)以此类推,最后一次将第n-1个元素与第n个元素相比较。

2.算法复杂度分析

考虑最坏情况:元素初始排列为从大到小,目标顺序为从小到大。外层循环共有n-1次;针对第i次外层循环,有n-i次内层循环。所以时间复杂度为O(n*n)

3.算法伪代码

void sort(int[] arr){    for(int i = 0 ; i < arr.length-1 ; i++)        for(int j = i+1 ; j < arr.length ; j++)            if(arr[i] > arr[j])                //交换}

4.java语言具体实现

import java.util.Random;public class BubbleSort {    public static void main(String[] args) {        //定义待排序数组并初始化        int[] arr = new int[6];        Random r = new Random();        for(int i =0 ; i < 6 ; i++)            arr[i] = r.nextInt(50);        //输出排序之前数组        System.out.println("-----------------------------------------------------------------------------------------");        System.out.print("排序前:\t\t\t");        for (int item : arr) {            System.out.print(item+"\t");        }        System.out.println();        System.out.println("-----------------------------------------------------------------------------------------");        //冒泡排序的实现        for(int i  = 0 ; i < arr.length - 1 ; i++){            for(int j = i +1 ; j < arr.length ; j++){                if( arr[i] > arr[j] ){//交换                     int temp = arr[i]; arr[i] =arr[j];arr[j] = temp;                }                //输出排序之后数组                System.out.print(j-i+"轮内层排序后:\t\t");                for (int item : arr) {                    System.out.print(item+"\t");                }                System.out.println();            }            //输出排序之后数组            System.out.println("-----------------------------------------------------------------------------------------");            System.out.print((i+1)+"轮外层排序后:\t\t");            for (int item : arr) {                System.out.print(item+"\t");            }            System.out.println();            System.out.println("-----------------------------------------------------------------------------------------");        }    }}

5.排序过程展示

这里写图片描述

0 0
原创粉丝点击