您的位置:首页 > 其它

简单插入排序

2018-03-21 14:29 204 查看
思想

抽出一个元素,在其前面的元素中找到适当的位置进行插入



// 这种方式 是将`待插入元素`逐个跟i-1个已排序元素比较,并交换位置
public static void simpleSort(int a[]) {
for (int i = 1; i < a.length; i++) {
int temp = a[i], j;
for (j = i - 1; j >= 0; j--) {
if (a[j] > temp) {
swap(a[j], temp);
}
}
}
}


设数据序列有n个元素,

最好情况:一个排好序的序列,如{1,2,3,4,5,6}。 每趟元素与i-1个元素比较的次数是1次。 因为前i-1个元素排好序 所以比较次数为n-1。时间复杂度是O(n)

最坏情况:待排序的序列是完全倒序的,如{6,5,4,3,2,1}。 当i=2时,4与i-1元素的比较次数是2次,以此类推。比较次数n*(n-1)/2=n^2/2 时间复杂度是O(n^2)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息