美文网首页
插入类排序算法-直接插入排序、希尔排序

插入类排序算法-直接插入排序、希尔排序

作者: Jorunk | 来源:发表于2020-01-31 11:33 被阅读0次

    1.直接插入排序

    void InsertSort(int k[], int n)
    {
        int i, j;
        int temp;
        for (i = 1; i < n; i++) {
            temp = k[i];
            j = i-1;
            
            while (j >= 0 && temp < k[j]) {
                k[j+1] = k[j];
                j--;
            }
            k[j+1] = temp;
        }
    }
    

    2.希尔排序

    void ShellSort(int k[], int n)
    {
        int i,j;
        int temp;
        
        int gap = n;
        
        do {
            gap = gap/3 + 1;
            
            for (i = gap; i < n; i++) {
                temp = k[i];
                j = i - gap;
                
                while (j >= 0 && temp < k[j]) {
                    k[j+1] = k[j];
                    j = j - gap;
                }
                
                k[j+gap] = temp;
            }
        } while (gap > 1);
        
    }
    

    相关文章

      网友评论

          本文标题:插入类排序算法-直接插入排序、希尔排序

          本文链接:https://www.haomeiwen.com/subject/qqywthtx.html