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]);
        }
      }
    }
    
    
  • 相关阅读:
    __doPostBack的使用
    【转】function,new,constructor and prototye
    谈谈一些网页游戏失败的原因到底有哪些?(转)
    全面剖析页游巨头发家史(转)
    2013.02.20开通博客
    老子喜欢的女人
    如何成为强大的程序员?(转)
    注重健康
    学习方法总结
    数据库知识点滴积累
  • 原文地址:https://www.cnblogs.com/tgkx1054/p/2594343.html
Copyright © 2011-2022 走看看