插入排序
//交换元素
void swap(int arr[],int i, int j){
arr[i] = arr[i]+arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i]- arr[j];
}
/*
把数组看成两个区,有序区和无序区
初始状态有序区为第0个元素,无序区为剩余元素
然后从无序区拿元素和有序区比较,然后插入的适当的位置
*/
//插入排序(在无序区选择元素后在有序区比较,然后插入到有序区适当的位置)
void insertSort(int *arr,int length){
/*把数组中第0个元素拿出来作为有序数组的的开始,
然后从剩余的元素中拿出一个,和有序数组中的元素比较,
如果比有序数组中的某个元素小(升序)或大(降序),
则交换元素(插入到有序数组当中)
*/
for (int i =1; i<length; i++) {
int j = i;
while (j>0 && arr[j] < arr[j-1]) {
swap(arr, j, j-1);
j--;
}
}
}
本文详细介绍了插入排序算法的实现过程,通过将数组分为有序区和无序区,逐步将无序区的元素与有序区进行比较并插入到合适位置,最终实现整个数组的排序。

2574

被折叠的 条评论
为什么被折叠?



