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

排序算法总结

时间:2018-10-04 21:39:54      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:时间   一个   循环   oid   for   style   return   原理   下标   

1 冒泡排序

原理:先把最大的数放后面,依次比较相邻的两个数,将小数放前面,大数放后面,这样第一次遍历就可以使做大的数放在了后面;第二次继续从起始位置遍历,把较大的数放在了倒数第二个位置,后面以此类推。时间复杂度O(n^2)。

public static void bubbleSort(int[] arr) {
//判断需不需要排序
if (arr == null || arr.length < 2) { return; }
//外层循环控制结束位置,内层循环实现两两比较
for (int e = arr.length - 1; e > 0; e--) { for (int i = 0; i < e; i++) { if (arr[i] > arr[i + 1]) { swap(arr, i, i + 1); } } } }

 2 选择排序

原理:先把最小的数放前面。从下标0开始遍历数组,找到最小的数,把下标0的元素与最小的数交换位置;第二遍从下标1开始找到次小的数并交换位置,后面以此类推。时间复杂度为O(n^2)。

public static void selectionSort(int[] arr) {
        if (arr == null || arr.length < 2) {
            return;
        }
        //外层循环控制起始位置,内层循环遍历比较
        for (int i = 0; i < arr.length - 1; i++) {
            int minIndex = i;   //先设定一个最小下标
            for (int j = i + 1; j < arr.length; j++) {
                minIndex = arr[j] < arr[minIndex] ? j : minIndex; //比较并找到最小的下标
            }
            swap(arr, i, minIndex);
        }
    }

 

排序算法总结

标签:时间   一个   循环   oid   for   style   return   原理   下标   

原文地址:https://www.cnblogs.com/youngao/p/9743371.html

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