• C语言排序之选择排序(一)


      今天主要写了点C的排序,现在想来,语言啥的都如浮云,当然能够做到最简单是最好的,比如用C++可以搞成模板,就省得写一大堆相似的东西,就是一个比较爽的事情,不过有些时候“高级”语言都让我们懒得去思考了,实在是没劲,还是思想重要,最近又对数学和算法充满了兴趣!越发觉得计算机或者带有“智能”系列的东西的神奇了,爽啊。不吐槽了,上今天的代码吧。

     1 /*rand()*/
     2 #include <stdlib.h>
     3 /********************
     4 int rand(void)
     5 void srand(unsigned int);
     6 *********************/
     7 #include <time.h>/*time(NULL)*/
     8 #include <stdio.h>
     9 /*直接插入排序*/
    10 void insort(int s[] , int n);
    11 /*希尔排序,就是将直接排序的增量分成若干组,相同的放一组,组内直接插入*/
    12 void shellsort(int s[] , int n);
    13 int main()
    14 {
    15     int num[10],i=0;
    16     srand(time(NULL));
    17     for(;i<10;i++)
    18     {
    19         num[i] = rand()%100;
    20     }
    21     //insort(num,10);
    22     shellsort(num , 10);
    23     for(i=0;i<10;i++)
    24     {
    25         printf("%d\n",num[i]);
    26     }
    27     return 0;
    28 }
    29 /*直接插入法是指对一个新数组重新一个个插入数据,小->大*/
    30 void insort(int s[],int n)
    31 {
    32     int i,j,key;
    33     /*key为监视,保存数据,1个数据不用比较*/
    34     for(i=1;i < n;i++)
    35     {
    36         key = s[i];
    37         j = i-1;
    38         while(key<s[j]&&j>=0)
    39         {
    40             s[j+1] = s[j];/*数据右移*/
    41             j--;
    42         }
    43         s[j+1] = key;
    44     }
    45 }
    46 /*希尔排序,选择就用希尔!*/
    47 void shellsort(int s[] , int n)
    48 {
    49     int i , j ,d,key;
    50     d = n/2;
    51     while(d>=1)
    52     {
    53         for(i = d ; i<n ; i++)
    54         {
    55             key = s[i];
    56             j = i -d;
    57             while(key < s[j]&&j>=0)
    58             {
    59                 s[j+d] = s[j];
    60                 j = j-d;
    61             }
    62             s[j+d] = key;
    63         }
    64         d = d/2;
    65     }
    66 }

    2013-01-19

  • 相关阅读:
    dp P1103 书本整理 洛谷
    dp 洛谷P1977 出租车拼车 线性dp
    Layui 在新标签中打开页面 / 模拟点击菜单
    布局 基础知识
    SpreadJS 生成报表
    ABP abp zreo 老版本 支持dotnet framework 4.0
    IIS 加载字体
    IIS 登录失败 该登陆名来自不受信任的域,不能与windows身份认证一起使用
    C# WebForm 打开默认页
    IIS 报错 Cannot open database "test4" requested by the login. The login failed. Login failed for user 'IIS APPPOOL est1'.
  • 原文地址:https://www.cnblogs.com/accipiter/p/2867198.html
Copyright © 2020-2023  润新知