zoukankan      html  css  js  c++  java
  • 插入排序——算法导论

    最近在看MIT的算法导论,在网易公开课上有这门课的视频,正好讲义也在图书馆借到了,有在看的小伙伴可以一起加油。

    绪论中以插入排序为例,讲述了算法中非常重要的两个概念时间复杂度T(n)和空间复杂度。详细地对程序花费时间T。

    伪代码:

       INSERTION-SORT(A) 

    1 for j←2 to length[A]                                   
    2     do  key←A[j]                                        
    3          Insert A[j] into the sorted                
    4               sequence A[1..j-1].                      
    5          i←j-1                                                
    6          while i>0 and A[i]>key
    7                do A[i+1] ← A[i]
    8                     i←i-1
    9         A[i+1]←key

    根据伪代码我实现了一下插入排序,今天开始的平时训练,开始注意格式规范,还有更专业地添加注释:

     1 #include <iostream>
     2 /*************************************************************************************************************
     3 *
     4 * Function Name  :InsertionSort
     5 * Description    :One of the famous sorting    algorithm
     6 *                    insert a number into a sorted sequence
     7 *                    the new sequence still in order
     8 * Input          :An random array
     9 * Output         :sorted array
    10 * Return         :None
    11 *
    12 **************************************************************************************************************/
    13 void InsertionSort(int* a,int n)
    14 {
    15     int key;
    16     for(int j=1;j<n;j++)
    17     {
    18         key = a[j];
    19         for(int i=j-1;i>=0&&a[i]>key;i--)
    20         {
    21             a[i+1]=a[i];                   //a[i+1]←a[i]
    22             a[i]=key;
    23         }
    24     }
    25 }
    26 
    27 
    28 void main()
    29 {
    30     int a[10]={8,6,11,55,2,9,3,23,1,32};
    31     printf("排序前:");
    32     for(int i=0;i<10;i++)
    33         printf("%d ",a[i]);
    34     printf("
    ");
    35     InsertionSort(a,10);
    36     printf("排序后:");
    37     for(int i=0;i<10;i++)
    38         printf("%d ",a[i]);
    39     system("pause");
    40 }

    实验结果:

    算法比较基础,简单,只是作为自己的一个整理,大家不喜勿喷。

  • 相关阅读:
    eclipse里maven项目An error occurred while filtering resources解决办法
    python中分页使用
    es学习
    cmdb资产管理2
    saltstack安装使用
    Django Rest Framework
    免交互批量分发公钥的实现
    单链表复制早已难不到你,但若我们再加个指针...
    面试 16:栈的压入压出队列(剑指 Offer 第 22 题)
    面试 15:顺时针从外往里打印数字(剑指 Offer 第 20 题)
  • 原文地址:https://www.cnblogs.com/zjuthantics/p/5017930.html
Copyright © 2011-2022 走看看