插入排序

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

插入排序

//交换元素
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--;
        }
    }
}
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看