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

问题描述

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 (将#修改为@)