首页 > 代码库 > 插入排序
插入排序
/* 插入排序 */void InsertionSort(int a[]) { int i, j; for (j = 1; j < 9; j++) { int item = a[j]; /* 待插入有序数组部分的数 */ for (i = j - 1; i >= 0; i--) { if (a[i] > item) a[i + 1] = a[i]; /* 从后往前将有序数组中大于item的元素a[i]后移一位 */ else break; } a[i + 1] = item; /* 将item插入 */ }}
在最好情况下,输入的数组是已经排好了序的 时间复杂度为O(n).
在最坏情况下,输入的数组是逆序的 时间复杂度为O(n^2).
平均情况下:在已排序的数组a[0~j-1] 中的元素 前一半的元素比a[j]小 后一半的元素比a[j]大. 时间复杂度亦为O(n^2).
插入排序是稳定的。
插入排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。