• 插入排序


    /*
    ================================================
    功能:直接插入排序
    输入:数组名称(也就是数组首地址)、数组中元素个数
    ================================================
    */
    /*
    ====================================================
    算法思想简单描述:

    在要排序的一组数中,假设前面(n-1) [n>=2] 个数已经是排
    好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数
    也是排好顺序的。如此反复循环,直到全部排好顺序。

    直接插入排序是稳定的。算法时间复杂度O(n2)--[n的平方]
    =====================================================
    */

    void insert_sort(int *a,int n){
      int i,j,t;
      for(i=1;i<n;i++){
        t=*(a+i);
        for(j=i-1;j>=0&&*(a+j)>t;j--){
        *(a+j+1)=*(a+j);
        }
        *(a+j+1)=t;
      }
    }

    测试:int main(){
      int array[6]={3,8,4,2,9,1};
      insert_sort(array,6);
      for(int i=0;i<6;i++){
        printf("%d ",array[i]);
      }
      printf("\n");
      return 0;
    }

    结果:

    [root@localhost /]# gcc -o insert_sort insert_sort.c --std=c99
    [root@localhost /]# ./insert_sort
    1 2 3 4 8 9

  • 相关阅读:
    sql server 中having 的使用注意事项
    js截取字符串
    .net截取字符串
    序列化二叉树
    把二叉树打印成多行
    35 拷贝赋值函数、虚函数
    34 char类型转换为int类型
    33 单/双精度有效数字、程序运行过程
    32 C++常见错误集锦
    31 位域、空类的sizeof值
  • 原文地址:https://www.cnblogs.com/aiwz/p/6333413.html
Copyright © 2020-2023  润新知