微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这是选择排序的改进实现吗?

如何解决这是选择排序的改进实现吗?

public class SelectionSort {
    public static void main(String[] args){
        int[] intArray = {20,35,-15,7,55,1,-22};
        int largest = 0;
        int iteration = 0;
        int indexLargest = 0;
        int temp = 0;

        for (int idx = intArray.length - 1; idx > 0; idx--){
            if(intArray[idx] > largest){
                largest = intArray[idx];
                indexLargest = idx;
            }
            
            if(idx == 1){
                iteration++;

                temp = intArray[intArray.length - iteration];
                intArray[intArray.length - iteration] = largest;
                intArray[indexLargest] = temp;
                
                largest = 0;
                idx = intArray.length - iteration;
            }
        }
    }
}

我只是好奇上面代码的大 O 符号是什么。该代码不是 100% 功能性的,因为它不包含第一个索引,我只是将其作为概念证明。

选择排序最通用的实现是 O(n^2),但我很好奇这个实现是否有可能是一种改进?

我只是在学习 big-O,这纯粹是一个概念性的实现。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。