关于java:算法笔记一冒泡排序

冒泡排序

算法原理

冒泡排序算法的原理如下: 

1.比拟相邻的元素。如果第一个比第二个大,就替换他们两个。  
2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最初一对。在这一点,最初的元素应该会是最大的数。 
3.针对所有的元素反复以上的步骤,除了最初一个。  
4.继续每次对越来越少的元素反复下面的步骤,直到没有任何一对数字须要比拟。

算法过程

例:对int[] arr = {10,5,9,3,6,8}进行从低到高排序:

第一轮遍历:
从0-arr.Length-1,使数组中最大的数,冒泡到最高的地位。
第二轮遍历:
从0-arr.Length-2,使数组中次大的数,冒泡到次高的地位。
顺次遍历,从到到低顺次确认地位。

算法性能

算法 最好工夫 最坏工夫 均匀工夫 额定空间
冒泡 O(n) O(n2) O(n2) 0/1

Java代码

public class BubbleSorting {
    public static int[] BubbleSortingFunc(int[] arr) {
        for (int cur = arr.length - 1; cur >= 0; cur--) {
            for (int i = 0; i < cur; i++) {
                if (arr[i]>arr[i+1]) swap(arr, i,i+1);
            }
        }
        return arr;
    }
    //替换数组中两个元素的地位,异或运算的性质,但i不等于j
    public static void swap(int[] arr, int i,int j){
        arr[i] = arr[i] ^ arr[j];
        arr[j] = arr[i] ^ arr[j];
        arr[i] = arr[i] ^ arr[j];
    }
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理