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

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

作者: 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);
    
}

相关文章

  • 排序算法时间复杂度、空间复杂度、稳定性比较

    一、排序算法的分类 1.插入类排序直接插入排序,折半插入排序,希尔排序2.交换类排序冒泡排序,快速排序3.选择类排...

  • 经典排序算法-希尔排序Shell sort

    一、希尔排序思想 希尔排序是基于插入排序的快速的排序算法,先分组后对每组进行直接插入排序,再分组再直接执行插入排序...

  • 排序算法时间复杂度对比

    内排序主要分为四类:插入排序类、选择排序类、交换排序类、归并排序类。 插入排序类 直接插入排序 希尔排序 选择排序...

  • 排序——插入排序

    业精于勤荒于嬉 插入排序包括:直接插入排序、折半插入排序、希尔排序(缩小增量排序) 一、直接插入排序 1. 算法思...

  • Java学习记录(常用 算法 排序 )

    排序算法的分类如下: 1.插入排序(直接插入排序、折半插入排序、希尔排序);2.交换排序(冒泡泡排序、快速排序);...

  • 九种排序算法(重要!!)

    分类:(九种排序算法) 1、插入排序:直接插入排序、二分插入排序、希尔排序; 2、选择排序:简单选择排序、堆排序 ...

  • 排序算法总结

    一、内排序算法分为:插入排序、交换排序、选择排序和归并排序四类 希尔排序相当于直接插入排序的升级,它们同属于插入排...

  • javascript实现排序算法(一)

    在算法中,排序的方法有很多种,大致可以分为五类,八种。插入排序分为:希尔排序,直接插入排序;选择排序:简单选择...

  • 排序算法

    排序算法 非线性时间比较类排序 交换排序 冒泡排序 快速排序 插入排序 插入排序 希尔排序 选择排序 简单选择排序...

  • python实现希尔排序算法

    希尔排序是插入排序的一种又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。...

网友评论

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

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