插入排序
/*--> */ /*--> */ 算法思想 将数据分为两部分:有序表,无序表;开始时有序表为空,无序表中全部是待排序数据,依次从无序表中取出待 排序元素插入到有序表中的合适位置,使有序表中的元素保持有序,直到无序表为空,表示排序完成。 例如:对数组使用插入排序 红色部分表示无序表,绿色部分表示有序表,直线箭头表示挪动元素以留出空间,以便元素的插入, 弧形箭头表示当前待排序元素的插入位置; 代码实现 使用C语言实现插入排序: bool InsertSort(int * pUnSortAry, int nArySize) { if (pUnSortAry == nullptr || nArySize <= 0) { return false; } for (int iIndex = 1; iIndex < nArySize; iIndex++) { int nCurrentValue = pUnSortAry[iIndex]; int jIndex = iIndex - 1; for (; jIndex >= 0 && nCurrentValue < pUnSortAry[jIndex]; jIndex--) { pUnSortAry[jIndex + 1] = pUnSortAry[jIndex]; } pUnSortAry[jIndex + 1] = nCurrentValue;