插入排序

Posted O了吗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了插入排序相关的知识,希望对你有一定的参考价值。

 

#include"iostream"
#include"time.h"
using namespace std;
void show(int *a,int N){
    for(int i = 0;i < N;i++){
        cout<< a[i]<<ends;
    }
    cout<<endl;
}
//直接插入排序
void sort(int *a,int n){
    for(int i = 0;i < n;i++){        //依次取出i往前插入
        int temp = a[i];            //保存i
        for(int j = i - 1;j >= 0 && temp < a[j];j--){        //找到插入点j
            a[j + 1] = a[j];        //比i大的元素往后移,给i腾位置,直到j等于0或者i>j,则找到插入点
        }
        a[j + 1] = temp;            //将i插入腾出的位置
    }
}
//二分插入排序
void sortbin(int *a,int n){
    for(int i = 0;i < n;i++){
        int temp = a[i];
        int low = 0,high = i - 1;
        while(low <= high){
            int mid = (low + high) / 2;
            if(a[mid] < temp){
                low = mid + 1;
            }
            else{
                high = mid - 1;
            }
        }
        //这里low或者high-1都为插入点
        for(int j = i - 1;j >= low;j--){
            a[j + 1] = a[j];
        }
        a[low] = temp;
    }
}

int main(){
    srand(time(NULL));
    const int N = 10;
    int a[N];
    for(int i = 0;i < N;i++){
        a[i] = rand() % 10;
    }
    show(a,N);
    sortbin(a,N);
    show(a,N);
    return 0;
}

 

以上是关于插入排序的主要内容,如果未能解决你的问题,请参考以下文章

KDoc:插入代码片段

代码片段使用复杂的 JavaScript 在 UIWebView 中插入 HTML?

将代码片段插入数据库并在 textarea 中以相同方式显示

关于在各浏览器中插入音频文件的html代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段