选择排序法和冒泡排序法

1.选择排序法(以从小到大排序为例)

算法思想:
A.在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
B.从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾
C.以此类推,直到所有元素均排序完毕

选择排序法动图演示

用C语言实现选择排序法

#include<stdio.h>
int main()
{void sort(int a[],int n);int i,a[10];//定义数组营首地址和数组长度printf("please input the original array:");for(i=0;i<10;i++)scanf("%d",&a[i]);//输入十个数sort(a,10);//调用函数sort对这十个数进行排序for(i=0;i<10;i++)printf("%5d",a[i]);//输出排序后的十个数printf("\n");return 0;
}void sort(int a[],int n)//n是指数组长度
{int min,i,j,t;for(i=0;i<n-1;i++)//数组中的前n-1个数(除最后一个数外)都要进行一趟循环{min=i;//假设此趟循环中的最小值就是当前值ifor(j=i+1;j<n;j++)//第i个数要和后面的每个值比较,与i比较的值记作jif(a[min]>a[j])//若后面的数j更小,则min=j;//记住此时j的下标t=a[i];a[i]=a[min];a[min]=t;//将a[i]和a[j]交换位置}
}

用C++实现选择排序法

#include<iostream>
using namespace std;int main()
{int a[10],j,t,min;cout<<"请输入十个数:"<<endl;for(int i = 0; i < 10; i++){cin>>a[i];}for(i=0;i<10-1;i++){min=i;for(j=i+1;j<10;j++)if(a[min]>a[j])min=j;//记住此时j的下标t=a[i];a[i]=a[min];a[min]=t;//将a[i]和a[j]交换位置}for(i = 0; i < 10; i++){cout<<a[i]<<" ";}return 0;
}

2.冒泡排序法(从小到大排序为例)

算法思想:
1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数,然后将该数固定
3.针对所有的元素重复以上的步骤,除了最后一个。
4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

冒泡排序法动图演示

用C语言实现冒泡排序法

#include<stdio.h>
int main()
{void sort(int a[],int n);int i,a[10];//定义数组营首地址和数组长度printf("please input the original array:");for(i=0;i<10;i++)scanf("%d",&a[i]);//输入十个数sort(a,10);//调用函数sort对这十个数进行排序for(i=0;i<10;i++)printf("%5d",a[i]);//输出排序后的十个数printf("\n");return 0;
}void sort(int a[],int n)
{int i,j,t;for(i=0;i<9;i++)//循环进行9轮时,已有九个较大的元素一次固定在数组未排序区的最后,因此最后一个数是最小数,已经自动换到了数组最前端{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;}//每轮比较结束后,会固定一个最大的数在数组未排序区的最后}
}

用C++实现冒泡排序法

#include<iostream>
using namespace std;
int main()
{int a[10],j,t;cout<<"请输入十个数:"<<endl;for(int i = 0; i < 10; i++){cin>>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;}}for(i=0;i<10;i++)cout<<a[i]<<" ";
}

选择排序法和冒泡排序法相关推荐

  1. python中怎么比较两个列表的大小_python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法...

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  2. python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  3. 比较交换/(选择)排序法和冒泡排序法(C语言)

    问题:C语言一维数组排序,读入一个正整数 n , 再读入 n 个整数(1<n<=10) 样例: 请输入元素个数:5 请输入 5 个整数: 3 2 1 5 4 排序后: 1 2 3 4 5 ...

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

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

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

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

  6. C语言排序算法之简单交换法排序,直接选择排序,冒泡排序

    C语言排序算法之简单交换法排序,直接选择排序,冒泡排序,最近考试要用到,网上也有很多例子,我觉得还是自己写的看得懂一些. 简单交换法排序 1 /*简单交换法排序 2 根据序列中两个记录键值的比较结果来 ...

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

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

  8. 常见排序算法详解(插入排序、希尔排序、选择排序、冒泡排序、快速排序)

    1.1 插入排序 步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取下一个元素tem,从已排序的元素序列从后往前扫描 3.如果该元素大于tem,则将该元素移到下一位 4.重复步骤3,直到找 ...

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

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

最新文章

  1. 将A*算法讲明白的大牛 感谢原作者Frank_chen 基础是迪克斯特拉算法
  2. 项目经理怎么运用思维导图
  3. 【TensorFlow】优化方法optimizer总结(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)解析(十三)
  4. excel的mysql语言,Mysql中文乱码及导出sql语句和Excel的相关解决方法
  5. shell脚本之从1加到100之和的思路
  6. Cocos2dx--------内存管理
  7. Stanford CoreNLP服务器
  8. 苹果4s忘记id密码怎么办_iPhone手机ID密码忘记了怎么办?三种方法轻松解决问题...
  9. 计算机系统漏洞及防范,计算机系统漏洞以及防范的措施.doc
  10. 图解TCP/IP 第一章 网络基础知识
  11. Trajectory Similarity Join in Spatial Networks
  12. Box2D 实现不倒翁效果 绘制扇形
  13. LocalSend - 文件传输工具
  14. 《Biology,8th》Neil Campbell (1)
  15. 【案例】 生成词云玩玩?
  16. ArrayList源码解析与相关知识点
  17. Xmind 8 安装及破解方法
  18. 常见的python图形-线性图
  19. 尚硅谷李立超JavaScript笔记
  20. autoit 3常用快捷键

热门文章

  1. 基本触发器和钟控触发器
  2. 第七天 03.python环境安装
  3. Ubuntu密码忘记了怎么办?
  4. webstorm 激活破解方法
  5. 【密码学】古代、古典密码
  6. 技术资源:国内知名技术网站网址
  7. PageAdmin CMS建站系统最新版本(V4.0.09)体验评测
  8. ERP、OA、BPM是什么?这样搭配对企业管理有奇效!
  9. 消息推送配置url(服务器地址),设置推送url接口
  10. 单例模式的四种实现方式(饿汉模式、懒汉模式、静态内部类、枚举类)