s2 插入排序

Posted repinkply

tags:

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

一:解题思路

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

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

C++:

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

                for(int j=i-1;j>=0;j--)
                {
                    if(min2max?(array[j]>e):(array[j]<e))
                    {
                        k=j;
                        array[j+1]=array[j];
                    }
                    else
                    {
                        break;
                    }
                }

                if(k!=i)
                {
                    array[k]=e;
                }
            }
        }

Java:

public void Insert(int[] array)
     {
         if(array==null || array.length==0) return;
         int n=array.length;
         
         for(int i=1;i<n;i++)
         {
             int k=i;
             int e=array[i];
             
             for(int j=i-1;j>=0;j--)
             {
                 if(array[j]>e)
                 {
                     k=j;
                     array[j+1]=array[j];
                 }
                 else
                 {
                     break;
                 }
             }
             
             if(k!=i)
             {
                 array[k]=e;
             }
         }
     }

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

7种基本排序算法的Java实现

c语言用指针法在一个字符串的指定位置插入一个字符串

KDoc:插入代码片段

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

代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?

将代码片段插入数据库并在 textarea 中以相同方式显示