• 插入排序


    插入排序的过程是:对于一个无序数组,每个元素与前面元素比较,从后往前比较,如果比其中一个元素小,就把该元素插入比它小的元素前面。

    插入排序是原址排序,原址排序指基本上不需要额外的辅助空间,允许少量额外的辅助变量进行的排序。就是在原来的排序数组中比较和交换的排序。

    它是稳定排序

    void insertion_sort(int* arr, int arrlen)
    {
        // i 表示当前要找到位置的元素下标。i之前的元素已经是有序的了
        // arr[i...arrlen]元素还是无序的
        // 这个排序中,只使用了一个临时变量 tmp, arr[0...j-1]只是在原来的位置上做交换
        for (int i = 1; i < arrlen; i++)
        {   
            int tmp = arr[i];
            int j = i - 1;
            while (arr[j] > tmp && j >= 0)
            {   
                arr[j+1] = arr[j];
                j--;
            }   
            arr[j+1] = tmp;
        }   
    }
  • 相关阅读:
    @codeforces
    @codeforces
    @hdu
    @hdu
    @bzoj
    @bzoj
    @topcoder
    推荐系统主题相关资料
    Python统计百分比及排序
    如何发布及部署asp.net网站
  • 原文地址:https://www.cnblogs.com/zuofaqi/p/9677330.html
Copyright © 2020-2023  润新知