#include <stdlib.h> //包含内存分配函数 malloc 的声明

#include "sort.h"

//直接插入排序变形算法(非适应性,与a[i]、a[i-1]之间的比较结果无关)

void insertion (Item a[], int l, int r) { //l, r 分别是待排序区间的下标下界和上界

int i,j;

for (i=l+1; i<=r; i++)

for (j=i; j>l; j--)

compexch(a[j-1], a[j]);

}

//直接选择排序

void selection (Item a[], int l, int r ) {

int i, j, min;

for (i=l; i<r; i++) {

min = i;

for (j = i+1; j <=r ; j++)

if ( less(a[j], a[min]) ) min=j;

exch(a[i], a[min]);

}

}

//冒泡排序

void bubble(Item a[], int l, int r) {

int i,j;

for (i=l; i<r; i++) {

for (j=r; j>i; j--)

compexch(a[j-1], a[j]);

}

}

转载于:https://www.cnblogs.com/huqian477/p/huqian3.html

直接选择排序与冒泡排序相关推荐

  1. c 冒泡排序_C语言中选择排序和冒泡排序

    点击上方"C语言中文社区",选择"设为星标★" 技术干货第一时间送达! 来源:https://blog.csdn.net/zjy18886018024/cate ...

  2. Java小结(四)——折半查找、选择排序、冒泡排序

    最常见的一些基本算法,比如折半查找,选择排序,冒泡排序. 折半查找,是它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列     即数组内元素必须是 ...

  3. c语言入门中冒泡排序的例题,选择排序和冒泡排序例题解析(c语言)

    排序算法排序算法 1.简单选择排序简单选择排序 假设有 n 个数,作简单选择排序简单选择排序,按升序排列: 先通过 n-1 次比较,从 n 个值中找出最小值,将它与第一个值交换. 再通过 n-2 次比 ...

  4. java数组排序冒泡排序_java数组常见的排序——选择排序和冒泡排序

    将数组中的元素按照一定的顺序(从小到大,或从大到小)排列 1,以下用了常用的两种排序,选择排序和冒泡排序 package com.mydemo02; import java.util.Arrays; ...

  5. JavaScript学习(九十三)—选择排序和冒泡排序

    JavaScript学习(九十三)-选择排序和冒泡排序 点我查看之前写过的 前端十大经典算法文章

  6. 递归算法设计 —— 选择排序和冒泡排序

    问题: 对于给定的含有n个元素的数组a,分别采用选择排序和冒泡排序 方法: 将a[0-n-1]分为有序区a[0-n-1]和无序区两个部分,有序区中的所有元素都不大于无序区中的元素,初始时有序区为空,即 ...

  7. 蛮力法查找有序数列c语言,算法——蛮力法之选择排序和冒泡排序c++实现

    这次实现的是蛮力法中的两个例子,选择排序法和冒泡排序法,使用的编译环境是vs2013,下面对这两个算法做一个简单介绍,然后是两个算法的c++实现代码. 选择排序法比较的范围是整个列表,每次扫描结束找出 ...

  8. 选择排序法和冒泡排序法

    选择排序法和冒泡排序法 1.选择排序法(以从小到大排序为例) 算法思想: A.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置 B.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序 ...

  9. Java基础语法——选择排序、冒泡排序以及二分查找法和Arrays类的使用

    本文将带你了解选择排序.冒泡排序以及二分查找法的原理和代码实现,以及通过Arrays类快速实现对数组的一些操作 文章目录 一.选择排序 二.冒泡排序 三.二分查找法 四.Arrays类(对数组的操作) ...

  10. Java利用选择排序和冒泡排序实现对键盘录入的数据排序

    Java利用选择排序和冒泡排序实现对键盘录入的数据排序 选择排序 选择排序是遍历元素找到最大(最小)的元素,放到第一个位置然后到剩余的元素里找到第二大(小)的元素放到第二个,因此类推,就可以得到一个排 ...

最新文章

  1. SQL自动审核-自助上线平台
  2. 从大型主机到个人计算机:机器人产业可以从pc普及革命中学到什么?
  3. 蓝桥杯 Java B组 省赛决赛模拟赛 详解及小结汇总+题目下载【2013年(第4届)~2021年(第12届)】
  4. fullcalendar v5.3.2 日历插件+LayerUi弹窗,实现自定义HTML表格
  5. 微信sdk swift版_使用Swift 4的iOS版Google Maps SDK终极指南
  6. 可视化理解卷积神经网络 - 反卷积网络 - 没看懂
  7. 初学 Delphi 嵌入汇编[13] - 地址参数用 [] 取值
  8. 【Linux】CentOS下vim的配置
  9. 【情感识别】基于matlab GUI SVM语音情感识别【含Matlab源码 869期】
  10. 新路由3 newifi3 官方固件与离线插件合集
  11. 工业相机快门类型:卷帘快门和全局快门——哪个最好?
  12. Tab页面知识整理及其方法分析
  13. 非常详细的Docker学习教程
  14. java sha1加密ascii码_MD5,SHA1,SHA256,SHA512等常用加密算法
  15. 小黑leetcode清爽雨天之旅,刚吃完宇飞牛肉面、麻辣烫和啤酒:112. 路径总和
  16. 2022 年超详细过程步骤讲解 CentOS 7 安装Maven。以及Mavne配置文件的修改
  17. 【转】MAPI over HTTP协议
  18. 南加大计算机游戏专业,南加州大学游戏设计项目有哪些课程?
  19. 杜亚楠: 用微组织技术撬动细胞培养大变革
  20. 冲床行业显露出来本质性复苏

热门文章

  1. 设置按峰值带宽计费_云平台界面优化升级!VPC网络包年包月计费调整!
  2. CSDN中最全python字典和实例,让你轻松掌握
  3. python的sleep_python的time.sleep()有多准确?
  4. pytest命令行传参
  5. eclipse linux c开发环境,Eclipse下搭建C/C++开发环境
  6. mysql数据库as表恢复_【翻译】如何从ibdata和.frm文件恢复MySQL表数据
  7. Java项目课程05:系统设计
  8. 无心剑中译切尼《当代的悖论》
  9. Spring Boot 案例:连接后台数据库实现用户登录
  10. Java讲课笔记18:异常处理