zoukankan      html  css  js  c++  java
  • 【各种排序系列之】插入排序法

    算法思想:

    在已形成的有序表中线性查找,并在适当位置插入,把原来位置上的元素向后顺移。

    //基于指针的插入排序
    /*假设有人想排序“eagle”,“cat”,“ant”,“dog”,“ball”这些字符串。使用基于指针的存储,即一个数组包含了指向实际信息的指针,而不是直接将信息存储在数组元素的存储空间里面。使用这种方式,可以灵活地存储和排序任意复杂结构的数据。
    */
    void sortPointers(void **ar, int n, int(*cmp)(const void *, const void *))
    //对一个数组ar进行排序,并且其中的元素可以用提供的比较函数cmp进行比较
    {
        int j;
        for(j = 1; j<n; j++)
        {
            int i = j-1;
            void *value = ar[j];//保存当前值。
            while(i >= 0 && cmp(ar[i],value) >0)
            {
                ar[i+1] = ar[i];
                i--;
            }
            ar[i+1] = value;
        }
    }
  • 相关阅读:
    迭代器和生成器
    20.03.23作业
    装饰器
    集合
    元组类型
    字典类型
    列表类型
    字符串类型
    for循环
    深浅copy与while循环
  • 原文地址:https://www.cnblogs.com/4everlove/p/3389954.html
Copyright © 2011-2022 走看看