《数据结构与算法》--插入排序(类模板实现)

来源:互联网 发布:双色球内部数据 编辑:程序博客网 时间:2024/06/15 16:14
--InsertSort类模板:
#ifndef INSERTSORT_H#define INSERTSORT_H#include <vector>#include <iostream>using namespace std;template<typename T>class InsertSort{public:InsertSort(vector<T> _List,int _len);void Sort();void Output();private:int m_iLen;vector<T> m_List;};#endiftemplate<typename T>inline InsertSort<T>::InsertSort(vector<T> _List, int _len){for (int i = 0; i < _len; i++)m_List.push_back(_List[i]);m_iLen = _len;}template<typename T>inline void InsertSort<T>::Sort(){for (int i = 1; i < m_iLen; i++){if (m_List[i] < m_List[i - 1]){T temp = m_List[i];int j = i - 1;m_List[i] = m_List[i - 1];while (j >= 0 && temp < m_List[j]){m_List[j + 1] = m_List[j];j--;}m_List[j + 1] = temp;}}}template<typename T>inline void InsertSort<T>::Output(){for (int i = 0; i < m_iLen; i++){cout << m_List[i] << " ";if ((i+1) % 10 == 0)cout << endl;}cout << endl;}

--测试主程序:

#include "InsertSort.h"const int Len = 10;int a[Len] = { 16,48,9,2,94,16,48,45,545,45 };int main(){vector<int> testdata;for (int i = 0; i < Len; i++){testdata.push_back(a[i]);}InsertSort<int> test(testdata, Len);test.Sort();test.Output();system("pause");return 0;}



0 0
原创粉丝点击