s1 选择排序

Posted repinkply

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了s1 选择排序相关的知识,希望对你有一定的参考价值。

一:解题思路

Time:O(n^2),Space:O(1)

二:完整代码示例 (C++版和Java版)

C++:

template <typename T>
        static void Swap(T& a,T& b)
        {
            T c(a);
            a=b;
            b=c;
        }

template <typename T>
        static void Select(T array[],int len,bool min2max=true)
        {
            if(len==0) return;
            
            for(int i=0;i<len;i++)
            {
                int minIndex=i;

                for(int j=i+1;j<len;j++)
                {
                    if(min2max?(array[j]<array[minIndex]):(array[j]>array[minIndex]))
                    {
                        minIndex=j;
                    }
                }

                if(minIndex!=i)
                {
                    Swap(array[i],array[minIndex]);
                }
            }
        }

Java:

private void Swap(int[] array,int i,int j)
     {
         int temp=array[i];
         array[i]=array[j];
         array[j]=temp;
     }

     public void Select(int[] array)
     {
            if(array==null || array.length==0) return;
            int n=array.length;

            for(int i=0;i<n;i++)
            {
                int minIndex=i;
                for(int j=i+1;j<n;j++)
                {
                    if(array[j]<array[minIndex])
                    {
                        minIndex=j;
                    }
                }

                if(minIndex!=i)
                {
                    Swap(array,minIndex,i);
                }
            }
     }

 

以上是关于s1 选择排序的主要内容,如果未能解决你的问题,请参考以下文章

将多个输出中的hls属性设置为单独的片段代码

如何从另一个片段访问片段对象

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

VSCode自定义代码片段——CSS选择器

VSCode自定义代码片段6——CSS选择器