常用排序算法——插入排序

#include <iostream>
using namespace std;

template<class T>
void insert_sort(T *arr, int len)
{
    T tmp;
    int curPos;
    for(int i = 1; i < len; ++ i)
    {
        tmp = arr[i];
        curPos = i - 1;
        while(curPos > -1 && tmp < arr[curPos])
        {
            arr[curPos + 1] = arr[curPos];
            curPos --;
        }
        arr[curPos + 1] = tmp;
    }
}

int main()
{
    int size;
    cin >> size;
    int *arr = new int[size];
    for(int i = 0; i < size; ++ i)
        cin >> *(arr+i);
    insert_sort(arr, size);
    for(int i = 0; i < size; ++ i)
        cout << *(arr + i) << " ";
    cout << endl;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章