void insertionSort(T arr[], int n) {
for (int i = 1; i < n; i++) {
// 寻找元素arr[i]合适的插入位置
for (int j = i; j > 0 && arr[j] < arr[j-1]; j--) {
swap(arr[j], arr[j - 1]);
}
}
}
template<typename T>
void insertionSort(T arr[], int n) {
for (int i = 1; i < n; i++) { // 从1开始,第0个元素不用考虑,因为它本身就有序了
// 寻找元素arr[i]合适的插入位置
T e = arr[i];
int j; // j保存元素e应该插入的位置
for (int j = i; j > 0 && arr[j-1] > e; j--) { // j从i递减到1,如果arr[j-1]大于e,则arr[j]的值变为arr[j-1](j位置的元素与前一个元素比较,如果大于它则交换位置,最多考察到j>0即j=1的情况)
arr[j] = arr[j - 1];
}
arr[j] = e;
}
}
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。