/*! @function ******************************************************************************** <PRE> 函数名 : InsertionSort 功能 : 插入排序 参数 : int count,排序数据的个数,double * sortNumber,需要排序的数组 返回值 : void 抛出异常 : -------------------------------------------------------------------------------- 备注 : 典型用法 : InsertionSort(count, randomNumber); -------------------------------------------------------------------------------- 作者 : <e.Chen> </PRE> *******************************************************************************/ /************************************************************************/ /* insertion sort Input: A sequence of n numbers <a1,a2,...,an> Output: A permutation (reordering) <a1',a2',...,an'> of the input sequence such that a1'<=a2'<=...<=an' */ /************************************************************************/ void InsertionSort(int count, double * sortNumber) { DWORD startTime = GetTickCount(); int i = 0, j = 0; double key = 0.0; //insertion sort for (j = 1; j < count; j++) { key = sortNumber[j]; i = j-1; while (i >= 0 && sortNumber[i] > key) { sortNumber[i+1] = sortNumber[i]; i--; } sortNumber[i+1] = key; } //display the sort result //cout<<"Insertion Sort Result: "; //for (j = 0; j < count; j++) //{ // cout<<sortNumber[j]<<" "; //} //cout<<endl; cout<<"Time Consumed: "<<GetTickCount() - startTime<<" ms"<<endl; }