您的位置:首页 > 其它

插入排序(INSERTION SORT)

2016-08-25 19:45 281 查看


先贴了代码,插入排序就是把所有的在数组中的数据拿出来和其他数组中的元素比较,时间复杂度为:n^2;

还是说下步骤:

初始化:数组从j=1开始,i=0;

迭代:当i=0 时和key(也就时arr[1])比较,key<a[i]的时候进入while 循环,这时,把arr[i] 负值给arr[i+1],i在减去1,如果条件满足while 循环,继续while 循环,如果条件不满足,把key 赋值给arr[i+1], 再继续for 循环;

终止:当数组中的所有的值循环排完序时,终止循环。附代码:

int* insert_sort(int *arr,int len){
int key,i;
for (int j=0;j<=len;j++){
key = arr[j];
i =j-1;
while (i>=0 && arr[i]> key) {
arr[i+1] = arr[i];
i=i-1;
}
arr[i+1] =key;
}
return arr;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: