选择排序法

简介: 选择排序法

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

# 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 );
      }
 }
相关文章
|
5月前
|
算法 搜索推荐 JavaScript
NodeJ实现冒泡算法
NodeJ实现冒泡算法
38 0
|
5月前
|
C++
冒泡排序法
这是一个关于冒泡排序法的描述和C++实现。冒泡排序通过比较相邻元素并交换(如果需要)来排序数组。提供的代码示例展示了如何用C++进行冒泡排序,并打印排序后的数组。
33 0
|
人工智能 BI
1236:区间合并 2020-12-27
1236:区间合并 2020-12-27
|
算法 C++
区间合并
复习acwing算法基础课的内容,本篇为讲解基础算法:区间合并,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上
112 0
区间合并
|
算法
排序——折半(二分)插入排序
排序——折半(二分)插入排序
154 0
排序——折半(二分)插入排序
|
搜索推荐
排序算法-冒泡法(起泡法)
排序算法-冒泡法(起泡法)
排序算法-冒泡法(起泡法)
|
算法 索引