插入排序2.0

Posted Amoshen

tags:

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

好久没复习以前写的数据结构了,今天看了一段以前写的插入排序。

插入排序原理:通俗讲,和打扑克牌整理牌是一个道理,从一堆混乱牌中,一张一张拿,拿一张后与前面排好的牌一个个比较,插入合适的位置。

时间复杂度:O(n^2)

/*插入排序2.0
**此版本将创建数组函数删除,
**创建数组与插入排序编排到
**同一个函数里。
*/


#include "stdafx.h"
#include <stdio.h>

#define M 1000

void Insert_sorting(int a[],int n);//插入排序
void Out_put(int a[], int n);//输出数组

int main()
{
    int n;
    int a[M] = {0};

    printf_s("输入待排序个数\n");
    printf_s("n=");
    scanf_s("%d", &n);

    Insert_sorting(a,n);
    Out_put(a, n);

    return 0;
}


void Insert_sorting(int a[], int n)
{
    int i, j, wep;//wep is 中间变量

    printf_s("请输入第1个值=");
    scanf_s("%d", &a[0]);

    for (i = 1; i < n; i++)
    {
        printf_s("请输入第%d个值=", i+1);
        scanf_s("%d", &a[i]);

        for (j = i;; j--)
        {
            if (j == 0)
            {
                break;
            }

            if (a[j] < a[j - 1])
            {
                wep = a[j - 1];
                a[j - 1] = a[j];
                a[j] = wep;
            }
            else
            {
                break;
            }
        }
    }
}
void Out_put(int a[], int n)
{
    int i;

    for (i = 0; i < n; i++)
    {
        printf_s("%d   ", a[i]);
    }
}

 

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

7种基本排序算法的Java实现

KDoc:插入代码片段

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

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

Hive 分区、分桶和排序表 - 多个插入

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