史上最详细的C语言和Python的选择排序算法
未经同意,请勿转载!如有收货,请留一赞,不胜感激!
同时欢迎加入我们的qq交流群:326079727
话不多说上代码:
C语言:
//选择排序走起
//原理:吃透原理再去实现,选择排序也是类似于冒泡排序,时间复杂度也是O^2,外层循环是十轮。
// 每轮都找出最小值,然后把它放到最前,已经放在前面的 下一轮就不用再去比较
void choice(){
int init_arr[] = {,,,,,,,,,};
//获取数组的长度,因为c语言的每个int型占四个字节,所除以4
int len = sizeof(init_arr)/;
int tmp;
for (int i = ; i < len; i++) {
//int mix=init_arr[i];//初始化最小值为mix为数组的第一个数
for (int j = i; j < len; j++) {//内层循环遍历,找出最小值,这里要从i位开始遍历,因为已经放在前面的(i之前的) 下一轮就不用再去比较
if (init_arr[j]<init_arr[i]){//如何其中的值比当前的init_arr[i]值还要小则交换数值
tmp = init_arr[i];
init_arr[i]=init_arr[j];
init_arr[j] = tmp;
}
}//完成一轮for则能找出这其中的最小值,然后放到前面,等下一轮会初始化最小值为init_arr[i+1]
}
for (int k = ; k < len; k++) {//循环遍历打印
printf("%d\n",init_arr[k]);
}
}
Python:
#选择排序走起
def choice():
list=[5,9,88,99,54,66,77,315,88,315,21]
#选择排序,顾名思义就是选择,每轮选出最小的值来,然后放到前面.
for i in range(0,len(list)):#外层循环,一轮找一个最小值
for j in range(i,len(list)):#内层循环,遍历列表,比较初始值与list[j]的大小,如果大,则把最小值赋给list[i],继续j++
if (list[i]>list[j]):
list[j],list[i]=list[i],list[j]
j+=1#j++继续比较下一个数
i+=1#i++进行下一轮
for k in list:#遍历打印
print(k)

史上最详细的C语言和Python的选择排序算法的更多相关文章
- 史上最详细的C语言和Python的插入排序算法
史上最详细的C语言和Python的插入排序算法插入排序原理:所谓插入排序,就像我们在打牌(斗地主)时,整理我们自己手中自己的牌一样,就像是2,1,3,9,J,K,5,4,这四张牌.我们要把它其中的几张 ...
- 史上最详细“截图”搭建Hexo博客并部署到Github
http://jingyan.baidu.com/article/d8072ac47aca0fec95cefd2d.html 大家也搭建过博客,很多时候,按着教程来做就可以了,但是我当时为了搭建Hex ...
- 史上最详细“截图”搭建Hexo博客——For Windows
http://angelen.me/2015/01/23/2015-01-23-%E5%8F%B2%E4%B8%8A%E6%9C%80%E8%AF%A6%E7%BB%86%E2%80%9C%E6%88 ...
- 史上最详细Windows版本搭建安装React Native环境配置 转载,比官网的靠谱亲测可用
史上最详细Windows版本搭建安装React Native环境配置 2016/01/29 | React Native技术文章 | Sky丶清| 95条评论 | 33530 views ...
- 史上最详细的Android Studio系列教程一--下载和安装
链接地址:http://segmentfault.com/a/1190000002401964#articleHeader4 原文链接:http://stormzhang.com/devtools/2 ...
- 测试思想-测试设计 史上最详细测试用例设计实践总结 Part2
史上最详细测试用例设计实践总结 by:授客 QQ:1033553122 -------------------------接 Part1-------------------------- 方法:这里 ...
- 转 史上最详细的Hadoop环境搭建
GitChat 作者:鸣宇淳 原文:史上最详细的Hadoop环境搭建 关注公众号:GitChat 技术杂谈,一本正经的讲技术 [不要错过文末活动哦] 前言 Hadoop在大数据技术体系中的地位至关重要 ...
- 史上最详细的XGBoost实战
史上最详细的XGBoost实战 0. 环境介绍 Python 版 本: 3.6.2 操作系统 : Windows 集成开发环境: PyCharm 1. 安装Python环境 安装Python 首先,我 ...
- 史上最详细mac安装Qt教程
史上最详细mac安装Qt教程,小白看过来! 这是一篇非常适合Qt入门小白的的安装Qt教程,因为这学期我们小组的一个关于高速救援的项目要用到Qt与web进行交互式展现相关的图像,由于没有MSVC这个插件 ...
随机推荐
- jQuery组件封装之return this.each(function () {});
记录一下自己的调试历程 组件封装经常看到这么一段代码 $.fn.plugin = function (options) { return this.each(function (i,t) { new ...
- mycat 报错 java.lang.OutOfMemoryError: Java heap space
今天排查mysql的错误日志发现 wrapper.log 中有如下错误日志 INFO | jvm 1 | 2019/10/20 12:52:31 | java.lang.OutOfMem ...
- vulnhub攻略
https://www.vulnhub.com/entry/21ltr-scene-1,3/ 这个靶机国内https://www.cnblogs.com/hack404/p/11423228.html ...
- Python 数据类型和控制结构
Python是一门脚本语言,我也久闻大名,但正真系统的接触学习是在去年(2013)年底到今年(2014)年初的时候.不得不说的是Python的官方文档相当齐全,如果你是在Windows上学习Pytho ...
- Windows与Linux之间文件传输
(1).使用WinSCP工具,实现将Windows的文件上传到Linux指定目录下 (1).输入主机名.用户名.密码,选择登录,成功连接至Linux系统 (2).在左侧列表,选择要上传文件,单击右键选 ...
- Liunx-tail命令
1. 实时刷新tail -f /var/log/messages 2. 实时刷新最新500条log tail -500f /var/log/messages 3. tail -n 20 catali ...
- synchronized 和 ReentrantLock 区别是什么?(未完成)
synchronized 和 ReentrantLock 区别是什么?(未完成)
- Java基础 线程的通信的三个方法/ 交替数数线程 / 生产者&消费者线程问题
线程通讯笔记: /** 线程通信 三个方法: * wait(): 调用该方法 是该调用的方法的线程释放共享资源的锁,进入等待状态,直至被唤醒 * notify() : 可以唤醒队列中的第一个等待同一共 ...
- 向导中的参数传递 wizard param
1.在向导页中使用WizardPage.this.getNextPage()方法可以获取到下一页的向导页: 2.在向导wizard中addPages()方法初始化的时候把整个页面传进去. 例:Wiza ...
- win10笔记本连接wifi出现:您的计算机配置似乎是正确的,但该配置或资源(DNS服务器)检测到有响应
问题上图: 一直以来连接网线使用,很少使用WiFi了,在网线不好使的时候使用wifi发现并不怎么好用,甚至上不了网页,但是那时候也不怎么在意,不过一会网线就好使了所以也没处理,直到今天,因为接下来好多 ...