zoukankan      html  css  js  c++  java
  • 算法和数据结构排序简单选择排序

    从今天开始努力。

    头文件。

    #define MAXSIZE 20 /* 一个用作示例的小顺序表的最大长度 */
    typedef int KeyType; /* 定义关键字类型为整型 */
    typedef struct
    {
    KeyType key; /* 关键字项 */
    InfoType otherinfo; /* 其它数据项,具体类型在主程中定义 */
    } RedType; /* 记录类型 */
    typedef struct
    {
    RedType r[MAXSIZE+1]; /* r[0]闲置或用作哨兵单元 */
    int length; /* 顺序表长度 */
    } SqList; /* 顺序表类型 */
    

    返回最小值的函数

    int SelectMinKey(SqList L,int i)
     { /* 返回在L.r[i..L.length]中key最小的记录的序号 */
       KeyType min;
       int j,k;
       k=i; /* 设第i个为最小 */
       min=L.r[i].key;
       for(j=i+1;j<=L.length;j++)
         if(L.r[j].key<min) /* 找到更小的 */
         {
           k=j;
           min=L.r[j].key;
         }
       return k;
     }
    

     简单选择排序

    void SelectSort(SqList *L)
     { /* 对顺序表L作简单选择排序。*/
       int i,j;
       RedType t;
       for(i=1;i<(*L).length;++i)
       { /*  选择第i小的记录,并交换到位 */
         j=SelectMinKey(*L,i); /* 在L.r[i..L.length]中选择key最小的记录 */
         if(i!=j)
         { /* 与第i个记录交换 */
           t=(*L).r[i];
           (*L).r[i]=(*L).r[j];
           (*L).r[j]=t;
         }
       }
     }
    

     更简单的用代码表示为

    void selectsort()
    {
       for(int i=0;i<n-1;i++)
     {
         for(int j=i+1;j<n;j++)
        {
           if(x[j]<x[i]) swap(x[j],x[i]);
        }
      }
    }
    
    
  • 相关阅读:
    oracle python操作 增删改查
    python连接oracle
    opengl问题
    [转]C++ 获取文件夹下的所有文件名
    @RequestMapping[转]
    hdu 6082
    maven/ssm框架搭建
    windows下mysql解压版安装及centos下mysql root密码忘记
    maven创建web项目
    eclipse用tomcat发布网站的目录
  • 原文地址:https://www.cnblogs.com/tgkx1054/p/2594343.html
Copyright © 2011-2022 走看看