排序方法总结(1)冒泡排序 选择排序

2023-05-16

排序方法是一种基本的、重要的算法,排序的方法有很多,现把一些基本排序方法的算法和c代码列出如下,供大家思考,借鉴,进步。

在进行排序之前首先要做的一件事就是选择排序的准则,即(1)从大到下排列或(2)从小到大排列,在进行排序时就是基于这种准则,这样做的目的是为了避免思路的混乱,清晰的思路是解决问题的第一准则。在选择好排序的准则之后就可以进行排序了。

冒泡排序

冒泡排序的算法是这样的

(1) 数组里的每一个数都要和它以后的数进行比较,若不符合排序的准则这两个数就需要交换,这是在内层循环里做的,这个数在进行比较之后就不需要再次比较了。

(2) 在外层循环里要做的事是控制循环的次数,即需要比较几次,若有n个数,则需要比较n-1

#include<stdio.h>

int main()

{

 int a[10];

 int i,j,t;

 printf("请输入10个数,每个数之间用空格隔开\n");

 for(i=0;i<9;i++)

 scanf("%d",&a[i]);

 printf("未排序前的数组为\n");

 for(i=0;i<10;i++)

printf("%d\t",a[i]);  

 for(i=0;i<9;i++)

 {

  for(j=0;j<9-i;j++)

  {

    if(a[j]>a[j+1])

    {

     t=a[j];

     a[j]=a[j+1];

     a[j+1]=t;                           

    }                                  

  }                           

 } 

 printf("按从小到大顺序排序后的数组为\n");  

for(i=0;i<10;i++)

printf("%d\t",a[i]);    

getch();

return 0; 

冒泡排序是一种效率较低的排序方法,排序所用时间与表长的平方成正比。如果需要排序的表比较长,冒泡排序所花费的时间就很客观。

   

}

选择排序

选择排序的算法是这样的:

(1)外层循环设置的a[i]为比较的基准值,内层循环a[j]为设置的比较基准值,比较基准值从a[i]以后的之开始,一直到数组的末尾

(2)每次a[i]a[j]比较时,如果不满足排序的条件,则a[i]a[j]进行交换,满足排序的条件,则a[i]a[j]不进行交换,所以这样做之后,每次是a[i]a[j],每次比较之后a[i]与它前一个数相比,总是按照一定的顺序排好的。下面是选择排序的c代码!

#include<stdio.h>

int main()

{

  int a[10]={9,6,3,8,5,2,7,4,1,0};//定义长度为10的数组,并初始化a[0]~a[8],a[9]自动赋0, 

  int i,j,t;

  printf("原数组为:\n");

  for(i=0;i<10;i++)

  printf("%d\t",a[i]);

  for(i=0;i<9;i++)

  {

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

   {

     if(a[i]>a[j])

     {

       t=a[i];

       a[i]=a[j];

       a[j] =t;         

     }                    

   }               

  }  

 printf("排序后数组为:\n");

 for(i=0;i<10;i++) 

 printf("%d\t",a[i]);

 getch();   

 return 0;    

}

选择排序和冒泡排序相比较,选择排序在进行排序时所交换的次数较少,用时较少,效率比较高。是一种快捷的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

排序方法总结(1)冒泡排序 选择排序 的相关文章

  • PixHawk Bootloader

    在https github com PX4这里下载的Bootloader代码 xff0c 编译TARGET HW PX4 FMU V2这个版本的 xff0c 然后将代码烧录到STM32F4探索者这块开发板上 xff0c 代码能够正常运行 x
  • 解决Ubuntu 显卡驱动升级导致的 显卡驱动和内核版本不匹配的问题

    解决Ubuntu 显卡驱动升级导致的 显卡驱动和内核版本 xff08 同时内核存在问题 xff09 不匹配的问题 不要轻易升级显卡驱动版本 xff01 xff01 xff01 xff01 xff01 xff01 xff01 xff01 xf
  • NVIDIA Jetson Xavier NX入门(1)——镜像烧写

    NVIDIA Jetson Xavier NX入门 xff08 1 xff09 镜像烧录 1 准备SD卡并且格式化 推荐使用SD Card Formater软件进行SD卡格式化 xff0c SD Card Formater软件下载地址 界面
  • NVIDIA Jetson Xavier NX入门(2)——系统设置;环境搭建

    NVIDIA Jetson Xavier NX入门 xff08 2 xff09 系统设置 环境搭建 1 NVIDIA Jetson Xavier NX连接显示器 键盘 鼠标 xff1b 2 Jetson Xavier NX连接电源后 xff
  • NVIDIA Jetson Xavier NX使用UART进行串口通信

    NVIDIA Jetson Xavier NX使用UART进行串口通信 一 NVIDIA Jetson Xavier NX的40pin接口 NVIDIA Jetson Xavier NX开发板俯视图 xff1a 2 开发板上打印出的UART
  • 远程服务器时Ubuntu报错:qt.qpa.xcb: could not connect to display

    远程服务器时Ubuntu报错 xff1a qt qpa xcb could not connect to display 远程服务器时Ubuntu报错 xff1a qt span class token punctuation span q
  • linux下USB设备编号固定

    linux下USB设备插入时系统自动分配编号 xff0c 多个相同设备时 xff0c 按插入顺序分配编号 以串口为例 xff0c 插入的USBtoSerial顺序不一样时 xff0c 系统分配的设备号是不一样的 但是每个USB接口对设备来说
  • Java进阶书籍推荐

    学习Java xff0c 书籍是必不可少的学习工具之一 xff0c 尤其是对于自学者而言 废话不多说 xff0c 下边就给大家推荐一些Java进阶的好书 第一部分 xff1a Java语言篇 1 Java编程规范 适合对象 xff1a 初级
  • GitHub+Docker Hub自动构建镜像

    一 什么是Dockerfile xff1f Dockerfile是一个包含用于构建镜像的命令的文本文档 可以使用在命令行中调用任何命令 Docker通过读取Dockerfile中的指令自动生成镜像 它们简化了从头到尾的流程并极大的简化了部署
  • 前端工程化 - 剖析npm的包管理机制(完整版)

    导读 现如今 xff0c 前端开发的同学已经离不开 npm 这个包管理工具 xff0c 其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区 xff0c 理解其内部机制非常有利于加深我们对模块开发的理解 各项前端工程化的配置以加快我们
  • GPRS模块开发初步(软件)

    文章来源 xff1a http blogold chinaunix net u1 56388 showart 1121149 html 1 AT 指令简介 AT 指令集一般指专门用来控制调制解调器的指令集 该指令集最初由美国 Hayes 公
  • 【安装库】matlab2020b安装及百度网盘提速

    安装库 matlab2020b安装及百度网盘提速 matlab2020b安装 一 xff0c 下载 百度网盘 链接 xff1a https pan baidu com s 18iLFaAbWt8IntUefX3eWfA 提取码 xff1a
  • FreeRTOS系统中CPU使用率统计方法分析

    FreeRTOS系统中CPU使用率统计方法分析 基本概念 操作系统中CPU使用率是在软件架构设计中必须要考虑的一个重要性能指标 它直接影响到程序的执行时间以及优先级更高的任务能否实时响应的问题 而CPU使用率也不能过高 xff0c 避免资源
  • NVIDIA GeForce 940M 设备是不可移动的,无法弹出或拔出问题解决办法

    上个月在新入手的笔记本上安装了一个CUDA的开发环境 xff0c 并选择安装了GeForce Experience工具 xff0c 前两天打开GeForce Experience工具浏览时 xff0c 工具提醒可以更新NVIDIA显卡驱动
  • 大学生职业规划要穿“营销三点式”

    我们现在就是这样的环境 xff0c 这样的 教育 xff0c 这样的模式 xff0c 这一切是无法改变的 xff0c 那你适应它吗 xff1f 不是 xff0c 你若适应它 xff0c 你只能茫然 xff01 为什么 xff1f 因为你适应
  • 网络与串口调试工具TCPCOM

    TCPCOM xff0c 网络与串口二合一调试助手 xff0c 将网络调试助手与串口调试助手合二为一 xff0c 绿色软件 xff0c 简单高效 软件特色 1 支持中英文双语言 xff0c 自动根据操作系统环境选择系统语言类型 xff1b
  • Cmake以及CmakeLists

    CMake使用 CMake1 gcc make和CMake的关系2 CMake一般使用流程2 1 生成构建系统2 2 执行构建 xff08 比如make xff09 xff0c 生成目标文件 xff1b 2 3 执行测试 安装或打包 3 C
  • 卡尔曼滤波公式及其详细推导(不涉及矩阵求导)

    卡尔曼滤波公式及推导 1 前言 卡尔曼滤波 Kalman Filter 是一种关于线性离散系统滤波问题的递推算法 其使用递推的形式对系统的状态进行估计 xff0c 以测量中产生的误差为依据对估计值进行校正 xff0c 使被估计的状态不断接近
  • Nmap常用命令及扫描原理

    Nmap常用参数 sS TCP SYN扫描 sU UDP扫描 sA ACK扫描 sW 窗口扫描 scanflags RSTSYNFIN 自定义扫描 O 检测目标操作系统类型 sV 检测目标上运行服务的版本 v 增加输出信息的详细程度 vv
  • pixhawk无人机结合openmv之精准降落

    pixhawk飞控与openmv之精准降落 一 精准降落概述二 精准降落流程三 代码逻辑流程四 总结反思改进 一 精准降落概述 1 概述 无人机在生产生活中逐渐获得更大的用途 xff0c 京东的物流无人机有望解决用户快递最后一分钟的问题 x

随机推荐

  • ROS Catkin 教程之 catkin_package(...) 到底在做什么?

    While looking at a CMakeLists txt file I was wondering the exact meaning of the CATKIN DEPENDS option of the catkin pack
  • c++中的sstream

    include lt sstream gt 头文件中主要包含了stringstream xff0c 可以用来进行数据格式转换 std stringstream ss 1 注意每当调用一次 lt lt 和 gt gt 后 xff0c stri
  • boost库之geometry

    Boost Geometry介绍 love code love life CSDN博客 boost geometry include lt boost assign hpp gt include lt boost geometry geom
  • Ali OSS

    常用工具 对象存储 OSS 阿里云
  • c++ 使用 matplotlibcpp

    xff08 1 xff09 拷贝matplotlibcpp h头文件到自己工程 GitHub lava matplotlib cpp Extremely simple yet powerful header only C 43 43 plo
  • Ubuntu16.04操作系统的安装

    由于今年才开始接触Linux操作系统 xff0c 并且一直在使用Ubuntu16 04 xff0c 已经在计算机上安装过很多次 xff0c 今天就在此总结一下Ubuntu16 04的安装 xff08 今天开到一位同事博客点击打开链接写的非常
  • 在Linux(Ubuntu)中使用终端编译并运行.c和.cpp文件

    首先要保证系统中安装了C语言和C 43 43 对应的编译器 xff1a gcc gt C g 43 43 gt C 43 43 1 c文件的编译与运行 xff08 1 xff09 c文件hello c代码如下 xff1a include l
  • ubuntu软件的编译安装方式

    在Linux操作系统上安装了好几天的VTK PCL OpenCV后来总结出了一条规律 xff0c 就是Linux下软件编译安装的方法 xff0c 困扰了自己好几天 xff0c 终于解决了 xff0c 所以乘热打铁现总结一下 xff0c 希望
  • C/C++字符串长度的计算

    char ch1 10 61 39 s 39 39 h 39 39 0 39 39 h 39 char ch2 61 34 sh 0h 34 char ch3 61 34 shh 34 xff08 1 xff09 strlen 统计字符串存
  • ROS-TF的使用(常用功能)

    tf 使用 人非人1991的博客 CSDN博客 一 TF中的数据格式 xff1a 这些数据格式全都是class 头文件 xff1a include lt tf transform datatypes h gt 基本上可以包含所有的tf数据类
  • STM32之MPU6050第一部分

    一 MPU6050基础介绍 MPU6050 是 InvenSense 公司推出的全球首款整合性 6 轴运动处理组件 xff0c 相较于多组件方案 xff0c 免除了组合陀螺仪与加速器时之轴间差的问题 xff0c 减少了安装空间 MPU605
  • 如何在Linux下运行Python脚本

    1 使用python的IDEL运行python 如果你的Linux安装了python Ctrl 43 Alt 43 T打开Terminal后输入指令 xff1a python 会出现 gt gt gt 这个时候就可以在里面输入python脚
  • 《《内存和性能优化》》给我带来的!

    内存和性能优化 这本书教会了我很多 xff01 有很多的东西自己知道 xff0c 但是确实想用语言表达出来很难 xff0c 下面就简单的发表我的一部分关于这本书的新的吧 xff01 我学会了在进行系统设计时要注意的问题 xff08 1 xf
  • java 中 Color类

    Color类 Color类是用来封装颜色的 xff0c 在上面的例子中多次用到 使用Color对象较为简单的方法是直接使用Color类提供的预定义的颜色 xff0c 像红色Color red 橙色Color orange等 xff1b 也可
  • C语言位运算符:与、或、异或、取反、左移和右移

    语言位运算符 xff1a 与 或 异或 取反 左移和右移 位运算是指按二进制进行的运算 在系统软件中 xff0c 常常需要处理二进制位的问题 C语言提供了6个位操作运算符 这些运算符只能用于整型操作数 xff0c 即只能用于带符号或无符号的
  • android 打开蓝牙设备 显示已经配对的蓝牙设备 ,并将已配对的蓝牙设备显示在textview中

    xff08 1 xff09 要想使用android 手机的Bluetooth xff0c 需要在androidmanifest文件中加入使用蓝牙的权限 lt uses permission android name 61 34 androi
  • iOS 7 点击按钮切换视图

    xff08 1 xff09 创建一个项目 xff0c 名字为切换视图 xff08 2 xff09 打开Main storyboard文件 xff0c 将视图中的ViewController视图控制器拖动到画布中 xff08 3 xff09
  • Javaweb 入门测试程序(jsp)

    关于进行jsp程序开发的入门测试小程序 xff08 1 xff09 必须的工具软件 java开发工具包jdk 需要进行环境变量的设置 xff0c 有Java开发基础的人这一步一看就懂 xff01 xff08 2 xff09 安装MyEcli
  • 自媒体平台运营的感悟

    1 关键是自媒体平台的定位 西游记中唐僧有着坚定的志向 西天取经 xff0c 普渡众生 抱着这样的初心和宗旨 xff0c 打造了自己的取经团队 一路上历经九九八十一难 xff0c 初心不改 xff0c 终于到达西天 xff0c 取得真经 x
  • 排序方法总结(1)冒泡排序 选择排序

    排序方法是一种基本的 重要的算法 xff0c 排序的方法有很多 xff0c 现把一些基本排序方法的算法和c 代码列出如下 xff0c 供大家思考 xff0c 借鉴 xff0c 进步 在进行排序之前首先要做的一件事就是选择排序的准则 xff0