排序算法总结

2021-05-19 06:28

阅读:526

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

1 冒泡排序

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

public static void bubbleSort(int[] arr) {
//判断需不需要排序
if (arr == null || arr.length ) { return; }
//外层循环控制结束位置,内层循环实现两两比较
for (int e = arr.length - 1; e > 0; e--) { for (int i = 0; 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 ) {
            return;
        }
        //外层循环控制起始位置,内层循环遍历比较
        for (int i = 0; i ) {
            int minIndex = i;   //先设定一个最小下标
            for (int j = i + 1; j ) {
                minIndex = arr[j] //比较并找到最小的下标
            }
            swap(arr, i, minIndex);
        }
    }

 

排序算法总结

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

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


评论


亲,登录后才可以留言!