插入排序

这个排序不复杂,把排序的过程弄清楚就好啦

#include<iostream>

using namespace std;

template<class T>

T* insertion_sort(T arr[],int len)

{

    T key;

    //外层循环

    for(int i=1;i<len;i++)

    {

        int k=i;

        key=arr[i];

        //确定一个元素的位置

        while(key<=arr[k-1]&&k>0)

        {

            arr[k]=arr[k-1];

            k–;

        }

        arr[k]=key;

    }

    return arr;

}

//测试

void main()

{

    double arr[]={3.4,4.5,7.6,2.1,8.8,13.5,63.4,0.3,5.5};

    int len=sizeof(arr)/sizeof(double);

    insertion_sort(arr,len);

    for(int i=0;i<len;i++)

        cout<<arr[i]<<endl;

}

点赞