码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序2.0

时间:2017-01-13 00:30:34      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:log   输出   nbsp   scan   中间   插入排序   []   好的   scanf   

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

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

时间复杂度: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

标签:log   输出   nbsp   scan   中间   插入排序   []   好的   scanf   

原文地址:http://www.cnblogs.com/zpc-uestc/p/6280261.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!