zoukankan      html  css  js  c++  java
  • (3)插入排序之一 直接插入排序

        直接插入排序(Straight Insertion Sort)是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。时间复杂度为O(n^2)理解:依次将每个待排序的记录插入到一个有序序列的合适位置。插入的位置是和有序序列的每一个元素进行比较,然后确定的。

    void CInsertionSort::StraightInsertion(void)
    {
    //元素0是哨兵。
    const int count = 9;
    int L[count] = {0, 49, 38, 65, 97, 76, 13, 27, 49};
    //对顺序表作直接插入排序。
    for (int i = 2; i < count; i++)
    {
    if (L[i] < L[i - 1])
    {
    L[
    0] = L[i];
    int j = i - 1;
    do
    {
    L[j
    + 1] = L[j];
    j
    --;
    }
    while (L[0] < L[j]);
    L[j
    + 1] = L[0];
    }
    }
    //打印排序结果。
    for (int i = 0; i < count; ++ i)
    {
    cout
    << L[i] << "\t";
    }
    cout
    << endl;
    }

    默认循环最初的有序序列只有一个元素。

  • 相关阅读:
    sql-DDL, DML 常用语句
    7.8 Structured Streaming
    7.7 输出操作
    7.6 转换操作
    7.5 高级数据源---Kafka
    7.4 基本输入源
    7.3 DStream操作
    7.2 Spark Streaming
    7.1 流计算概述
    6.3 使用Spark SQL读写数据库
  • 原文地址:https://www.cnblogs.com/wanggary/p/2025855.html
Copyright © 2011-2022 走看看