选择排序法

简介: 选择排序法

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

# 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 );
      }
 }
相关文章
|
6月前
|
算法 搜索推荐 JavaScript
NodeJ实现冒泡算法
NodeJ实现冒泡算法
49 0
|
1月前
排序之希尔,归并,快排
排序之希尔,归并,快排
11 0
|
6月前
|
C++
冒泡排序法
这是一个关于冒泡排序法的描述和C++实现。冒泡排序通过比较相邻元素并交换(如果需要)来排序数组。提供的代码示例展示了如何用C++进行冒泡排序,并打印排序后的数组。
49 0
|
6月前
|
搜索推荐 算法
AcWing 785. 快速排序(一篇解决快速排序中的边界问题!)
AcWing 785. 快速排序(一篇解决快速排序中的边界问题!)
|
人工智能 算法
单调队列算法模板及应用
单调队列算法模板及应用
92 0
|
算法
排序——折半(二分)插入排序
排序——折半(二分)插入排序
159 0
排序——折半(二分)插入排序
|
搜索推荐
排序算法-冒泡法(起泡法)
排序算法-冒泡法(起泡法)
排序算法-冒泡法(起泡法)
|
算法 索引
|
算法 索引 缓存