zoukankan      html  css  js  c++  java
  • 《算法导论》CLRS算法C++实现(一)P11 插入排序

    过几个月要面试了,最近在看《算法导论》,想把里面的算法都用C++实现一遍。今天是第一个算法,比较简单。

    第二章 算法入门

    插入排序

    伪代码实现

    INSERTION-SORT(A)  《算法导论》P10

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

    C++代码实现

     1 #include <iostream>
     2 
     3 using namespace std;
     4 
     5 void insertSort(int *arr, int n)
     6 {
     7     int i, j, key;
     8     for(j = 1; j < n; j++)
     9     {
    10         key = arr[j];
    11         i = j - 1;
    12         while((i >= 0) && (arr[i] > key))
    13         {
    14             arr[i + 1] = arr[i];
    15             i--;
    16         }
    17         arr[i + 1] = key;
    18     }
    19 }
    20 
    21 int main()
    22 {
    23     int a[] = {2, 4, 32, 64, 67, 34, 78, 23, 3456, 2345, 123, 1, 3};
    24     insertSort(a, 13);
    25     for(int i = 0; i < 13; i++)
    26     {
    27         cout << a[i] << " ";
    28     }
    29     cout << endl;
    30     return 0;
    31 }

    希望能一直坚持下去吧。

  • 相关阅读:
    设计模式 里氏替换原则
    java队列
    java 多线程
    设计模式-里氏替换原则
    设计模式-单一职责原则
    一、概念
    六、序列化和反序列化(对象流)
    七、随机访问文件流
    五、包装流
    四、字符输入输出流
  • 原文地址:https://www.cnblogs.com/juventus/p/2531520.html
Copyright © 2011-2022 走看看