Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1958632
  • 博文数量: 261
  • 博客积分: 8073
  • 博客等级: 中将
  • 技术积分: 2363
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-10 15:23
文章分类

全部博文(261)

文章存档

2013年(1)

2012年(1)

2011年(50)

2010年(34)

2009年(4)

2008年(17)

2007年(55)

2006年(99)

分类:

2007-09-27 14:04:10

    插入排序如同打扑克牌时,对扑克牌进行整理的过程。其特点是不需要额外的存储空间,属于in-place

排序.

insertSort.c
#include "insertSort.h"

void insertSort(int *A, int len)
{
        int i, j, temp;

        if(NULL == A || len < 1)
        {
                return;
        }
        for(i = 1;i < len;i++)
        {
                for(j = i - 1;j >= 0;j--)
                {
                        if(A[j + 1] < A[j])
                        {
                                temp = A[j + 1];
                                A[j + 1] = A[j];
                                A[j] = temp;
                        }
                        else
                        {
                                break;
                        }
                }
        }
}


insertSort.h
#ifndef INSERT_SORT_H
#define INSERT_SORT_H

#include
#include

void insertSort(int *A, int len);

#endif

main.c
#include "insertSort.h"
#include
#include

void print_array(int *A, int len)
{
        int i;
        for(i = 0;i                 printf("%d ", *(A++));
        printf("\n");
}

int main()
{
        int i, len;
        int *A;

        printf("len = ");
        scanf("%d", &len);
       
        if( (A = (int *)malloc(sizeof(int) * len)) == NULL)
        {
                perror(strerror(errno));
                return 1;
        }
        for(i = 0;i < len;i++)
        {
                A[i] = rand() % 100;
        }

        printf("Before insert sorting : ");
        print_array(A, len);

        insertSort(A, len);

        printf("After insert sorting : ");
        print_array(A, len);
       
        return 0;
}


阅读(1470) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~