选择排序法

简介: 选择排序法

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

# 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 );
      }
 }
目录
打赏
0
0
0
0
0
分享
相关文章
|
4月前
|
Leetcode第十五题(三数之和)
LeetCode第十五题“三数之和”要求在一个整数数组中找出所有不重复的三元组,使得它们的和为0,通常通过先排序再使用双指针法来解决。
49 0
Leetcode第十五题(三数之和)
【用Java学习数据结构系列】七大排序要悄咪咪的学(直接插入,希尔,归并,选择,堆排,冒泡,快排)以及计数排序(非比较排序)
【用Java学习数据结构系列】七大排序要悄咪咪的学(直接插入,希尔,归并,选择,堆排,冒泡,快排)以及计数排序(非比较排序)
44 1
二分查找算法详解及实现
二分查找算法详解及实现
149 2
|
8月前
指针\选择排序法
指针\选择排序法
46 0
数据结构实验之栈与队列四:括号匹配
数据结构实验之栈与队列四:括号匹配
|
9月前
【每日一题Day260】LC15三数之和 | 排序 + 双指针
【每日一题Day260】LC15三数之和 | 排序 + 双指针
68 0
C# | 二分查找算法的实现
二分查找法一种在**有序数组**中查找目标值的算法。划重点——“**有序**”,与需要遍历整个数组的查询算法不同,二分查找法通过将数组分成两部分来快速定位目标值所在的位置。 它的主要好处在于它的效率很高。因为它能够通过每次排除一半的元素来快速缩小搜索范围,因此在大型数据集上使用二分查找法可以显著提高查找速度。
91 0
每日一题——单链表排序(归并排序)
每日一题——单链表排序(归并排序)
每日一题——三数之和(双指针)
每日一题——三数之和(双指针)

热门文章

最新文章