C语言插入排序算法的实现(输入任意个整数)

来源:互联网 发布:hadoop与python 编辑:程序博客网 时间:2024/04/30 04:26

最近在学习《算法导论》,仿照网上的例子写了个插入排序算法的例子,改进是可以输入任意个整数

#include <stdio.h>  
#include <stdlib.h>  
 
//插入排序算法
void insertSort(int *, int); 
 
int main() 

    int i, n; 
    int *num; 

    printf("请输入所要创建的一维动态数组的长度:");
    while(scanf("%d", &n) != EOF)  //EOF: End Of File 此处输入n的值 比如n=11
    { 
  num=(int*)calloc(n,sizeof(int));
        //接收无序数据  
        for(i = 0; i < n; i ++)  
            scanf("%d",num + i);  //num是一个num[]数组的首地址,num+i就是num[i]的地址。数组和指针是相互依托的
 
        //快速排序  
        insertSort(num, n); 
 
        //打印输出  
        for(i = 0; i < n; i ++) 
            printf("%d ",num[i]); 
        printf("\n"); 
    } 
    return 0; 

 
void insertSort(int *array, int len) 

    int i, j, temp; 
 
    for(i = 1; i < len; i ++) 
    { 
        temp = array[i]; 
        for(j = i - 1; j >= 0; j --) 
            if(array[j] > temp) 
                array[j + 1] = array[j];     
   else 
                break; 
        array[j + 1] = temp; 
    } 

 

原创粉丝点击