码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法

时间:2018-02-27 23:22:56      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:复杂度   印象   算法   操作   一个   blog   冒泡   sort   排序算法   

印象中,三次面试都被问到了快速排序算法,有的甚至要求当场手写实现,就比如今天下午的转转面试。艰难困苦中,幸好我写出了一个不太正规的冒泡排序。这里就记录下常见的几种排序算法吧!

冒泡排序

/**
 * Created by clearbug on 2018/2/27.
 */
public class Sort {

    public static void main(String[] args) {
        int[] arr = new int[]{49, 38, 65, 97, 76, 13, 27, 49};

        Sort sort = new Sort();
        sort.bubbleSort(arr);
    }

    /**
     * 冒泡排序
     * 
     * 原理:藉助“交换”操作进行排序
     * 时间复杂度:O(n^2)
     * 空间复杂度:O(1)
     * 
     * @param arr 待排序的数组
     */
    public void bubbleSort(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            boolean sorted = true;
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    sorted = false;
                }
            }
            if (sorted) {
                break;
            }
        }
    }
}

快速排序

排序算法

标签:复杂度   印象   算法   操作   一个   blog   冒泡   sort   排序算法   

原文地址:https://www.cnblogs.com/optor/p/8480654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!