算法—直接插入排序

来源:互联网 发布:二手玫瑰知乎 编辑:程序博客网 时间:2024/05/18 00:12

直接插入排序算法的思想:
我们要把一个数插入到已经有序的数据中,选取待排序的无序数据中的第一个数据,看做为一个已经有序的数列,然后依次将其余无序数据插入到这个有序的数列中。

这里写图片描述

#include<iostream>using namespace std;struct Greater{    bool operator()(int x,int y)    {        return x>y;    }};struct Less{    bool operator()(int x,int y)    {        return x<y;    }};template<class Compare=Greater>void insertsort(int* data,size_t size){    Compare com;    int end;    int tmp;    for(size_t index=0;index<size;index++)    {        end=index;        tmp=data[end+1];        while(end>=0&&com(tmp,data[end]))        {            data[end+1]=data[end];            end--;        }        data[end+1]=tmp;    }}int main(){    int data[]={2,5,4,9,3,6,8,7,1,0};    insertsort<Less>(data,sizeof(data)/sizeof(data[0]));    return 0;}
原创粉丝点击