选择排序法

简介: 选择排序法

排序需要用到的结构和函数

# define MAXSIZE 10
 typedef struct {
     /* 用 于 存 储 要 排 序 数 组 , r[0] 用 作 哨 兵 或 临 时 变 量 */
     int r[ MAXSIZE + 1];
     /* 用 于 记 录 顺 序 表 的 长 度 */
     int length ;
 } SqList ;
 /* 交 换 L 中 数 组 r 的 下 标 为 i 和 j 的 值 */
 void swap ( SqList *L, int i, int j){
     int temp = L- >r[i];
     L->r[i] = L- >r[j];
     L->r[j] = temp ;
 }

选择排序序程序

每次找一个最小的数出来

 

/* 对 顺 序 表 L 作 简 单 选 择 排 序 */
 void SelectSort ( SqList *L){
 int i, j, min ;
 for (i = 1; i < L- > length ; i++) {
     min = i;/* 将 当 前 下 标 定 义 为 最 小 值 下 标 */
         /* 循 环 之 后 的 数 据 */
         for (j = i + 1; j <= L- > length ; j++) {
         /* 如 果 有 小 于 当 前 最 小 值 的 关 键 字 */
             if (L- >r[min ] > L- >r[j])
             /* 将 此 关 键 字 的 下 标 赋 值 给 min */
                 min = j;
                }
          if (i != min ) 
              /* 若 min 不 等 于 i , 说 明 找 到 最 小 值 */
              /* 交 换L->r[i] 与L- >r[min ] 的 值 */
              swap (L, i, min );
      }
 }
相关文章
|
2月前
|
算法 搜索推荐 JavaScript
NodeJ实现冒泡算法
NodeJ实现冒泡算法
16 0
|
2月前
|
算法 索引
算法思想总结:二分查找算法
算法思想总结:二分查找算法
|
11月前
Leecode10.01 合并排序数组
Leecode10.01 合并排序数组
43 0
|
11月前
二分查找法
二分查找法
|
算法 索引
|
算法 索引 缓存