zoukankan      html  css  js  c++  java
  • 插入排序(insertion sort)算法实现

        插入排序算法的原理很简单,首先将数组的第一个数data[0]看成是有序的,然后从第二个元素开始和它前面的元素进行比较,如果从前面的某一个数大,就交换。由于前面的元素是有序的,所以就使有序元素的个数逐渐增大,直到等于n。插入排序的时间复杂度为O(n^2)

    算法的c实现如下:
    #include <stdio.h>

    void output_array(int data[], int n)
    {
        
    int i;
        
    for(i = 0; i < n; i++)
            printf(
    "%d ", data[i]);
        printf(
    "\n");
    }
    void swap(int *a, int *b)
    {
        
    int x;
        x 
    = *a;
        
    *= *b;
        
    *= x;
    }
    //算法实现
    void insertion(int data[], int b, int e)
    {
        
    int i, j;
        
    for(i = b + 1; i <= e; i++)
        {
            
    for(j = i; j > 0 && data[j] > data[j - 1]; j--)
            {
                swap(
    &data[j], &data[j - 1]);
            }
        }
    }

    int main()
    {
        
    int data[] = {5316657766441110986};
        output_array(data, 
    12);
        insertion(data, 
    011);
        output_array(data, 
    12);
        
    return 0;
    }

  • 相关阅读:
    专业的户外直播视频传输系统是如何搭建起来的?通过GB28181协议建立的户外直播方案
    Go-注释
    语言的动态性和静态性
    程序&命名-执行环境
    Go-错误栈信息
    Mongo-文档主键-ObjectId
    Mongo-关系型VS非关系型
    数据-CRUD
    Mongo基本操作
    mongo环境搭建
  • 原文地址:https://www.cnblogs.com/nokiaguy/p/1201081.html
Copyright © 2011-2022 走看看