如何维护一个动态数组有序?只需要将新插入的元素与数组内的其他元素循环比较,将其插入有序位置。参照这种思想,运用在静态数组上,就实现了插入排序的算法。
插入排序的核心思想就是将数组中所有元素循环与数组中其他元素比较,调整其本身位置,最终达到数组有序的状态。
插入排序的时间复杂度可以从最好、最坏和平均三个层次来分析。
插入排序和冒泡排序的时间复杂度都为O(n^2),但是插入排序其实比冒泡排序的效果更好,这一点我们需要关注它们在进行数据移动时的代码。
下面展示C++的实现源码:
void SortFuncation::InsertSort(QVector _vec)
{if(_vec.length() <= 1){return ;}QTime _beginTime = QTime::currentTime();qDebug()<int _value = _vec.at(i);int j = i - 1;for(j;j >= 0;j --){if(_vec[j] > _value){_vec[j+1] =_vec[j];}else{break;}}_vec[j+1] = _value;}QTime _endTime = QTime::currentTime();qDebug()<
本期对于插入排序的学习就到这,下棋我们学习选择排序:)