Python之路第六天,进阶-算法
排序算法
冒泡排序
冒泡排序原理:
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。
排序过程:
从小到大排序:6 2 4 1 5 9
第一次排序(外循环)
第一次两两比较6 > 2交换(内循环)
交换前状态 6 2 4 1 5 9
交换后状态 2 6 4 1 5 9
第二次两两比较,6 > 4交换
交换前状态 2 6 4 1 5 9
交换后状态 2 4 6 1 5 9
第三次两两比较,6 > 1交换
交换前状态 2 4 6 1 5 9
交换后状态 2 4 1 6 5 9
第四次两两比较,6 > 5交换
交换前状态 2 4 1 6 5 9
交换后状态 2 4 1 5 6 9
第五次两两比较,6 < 9不交换
交换前状态 2 4 1 5 6 9
交换后状态 2 4 1 5 6 9
第二趟排序(外循环)
第一次两两比较2 < 4不交换
交换前状态 2 4 1 5 6 9
交换后状态 2 4 1 5 6 9
第二次两两比较,4 > 1交换
交换前状态 2 4 1 5 6 9
交换后状态 2 1 4 5 6 9
第三次两两比较,4 < 5不交换
交换前状态 2 1 4 5 6 9
交换后状态 2 1 4 5 6 9
第四次两两比较,5 < 6不交换
交换前状态 2 1 4 5 6 9
交换后状态 2 1 4 5 6 9
第三趟排序(外循环)
第一次两两比较2 > 1交换
交换后状态 2 1 4 5 6 9
交换后状态 1 2 4 5 6 9
第二次两两比较,2 < 4不交换
交换后状态 1 2 4 5 6 9
交换后状态 1 2 4 5 6 9
第三次两两比较,4 < 5不交换
交换后状态 1 2 4 5 6 9
交换后状态 1 2 4 5 6 9
第四趟排序(外循环)无交换
第五趟排序(外循环)无交换
代码:
C代码:
#include<stdio.h>
int main()
{
int num[6] = {6,2,4,1,5,9};
int temp = 0;
int i,j;
for(i = 0;i < sizeof(num)/sizeof(num[0]);i++){
for(j = 0; j < sizeof(num)/sizeof(num[0])-i-1;j++)
if(num[j] > num[j+1]){
temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
for(i = 0;i < sizeof(num)/sizeof(num[0]);i++){
printf("%d ",num[i]);
}
printf("\n");
return 0;
}
Python之路第六天,进阶-算法的更多相关文章
- Python之路,Day21 - 常用算法学习
Python之路,Day21 - 常用算法学习 本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的 ...
- Python之路:常用算法与设计模式
选择排序 时间复杂度 二.计算方法 1.一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道.但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花 ...
- python之路:进阶篇 内置函数
li = [11, 22, 33] news = map( li = [100, 2200, 3300] news = map( [13, 24, 35] [11, 11, 11] [22, 4 ...
- python之路:进阶篇
> ) { ; } printf(;} print i >>> >>> == : name == == ...
- python之路——二分查找算法
楔子 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72 ...
- Python之路-(Django进阶一)
Django请求生命周期: 首先,客户端发送请求到服务器的urls库,通过匹配url后面的关键字,去找指定app里面的的view. 然后,app通过判断,拿到数据库数据和html模板文件. 最后,将拿 ...
- Python之路第六天,基础(8)-反射
反射 利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员(函数). Python中反射用到的4个内置函数:getattr(),setattr(),hasattr(),delattr() ...
- Python之路第六天,基础(7)-正则表达式(re)
Python RE模块(正则表达式) 就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成 ...
- python之路:进阶 二
c = collections.Counter( Counter({ b = collections.Counter( b.update(c) Counter({ Counter({ ...
随机推荐
- struts2的注解配置全面解析
以前在用struts2的注解配置时总是要在web.xml中配置一个初始化参数(actionPackages),最近发现不灵了,仔细研究了下发现即使不用在web.xml中配置也能成功,但时灵时不灵的,很 ...
- python运维开发(二十)----models操作、中间件、缓存、信号、分页
内容目录 select Form标签数据库操作 models操作F/Q models多对多表操作 Django中间件 缓存 信号 分页 select Form标签补充 在上一节中我们可以知道Form标 ...
- SSRS 请求并显示SharePoint人员和组字段
场景: 使用Reporting Service请求SharePoint List,该list中包含人员和组字段.要求:只显示人员或组的display name.示例如下: 项目 参与人员 期望显示 项 ...
- Linux dirname、basename(转)
首先使用 --help 参数查看一下.basename命令参数很少,很容易掌握. $ basename --help 用法示例: $ basename /usr/bin/sort 输出&q ...
- codecomb 2086【滑板鞋】
题目背景 我的滑板鞋时尚时尚最时尚 回家的路上我情不自禁 摩擦 摩擦 在这光滑的地上摩擦 月光下我看到自己的身影有时很远有时很近 感到一种力量驱使我的脚步 有了滑板鞋天黑都不怕 题目描述 你在魅力之都 ...
- 【转】morgan stanley 电面面经新鲜出炉
楼楼早上上午大概11点接到的电话,一个声音炒鸡好听的GG,说他是来自morgan stanley的,想和我约一下店面时间.我一听,真是戳不及防,掐指一算,online的IKE测试已经过去20几天了吧, ...
- Strurts(四)——从Struts原型模拟看大道至简(含实例下载)
首先,需要再次声明的是:struts是web层的框架.在介绍struts的第一篇文章就已经有了论述,如果不使用struts框架同样可以进行开发,但是需要在Servlet里面写大量的“if……else… ...
- Elasticsearch 安装与集群配置
一.软件版本 操作系统:CentOS-6.5-x86_64 ES版本:5.0 主机:192.168.63.246 主机: 192.168.63.242 二.部署环境规划: 1. 需求:jdk版本: ...
- poj 1986 Distance Queries(LCA)
Description Farmer John's cows refused to run in his marathon since he chose a path much too long fo ...
- 用Matlab完成:从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
程序思路: (1)一圈人循环报数,报数报到3的人,将其置为0,表示被淘汰: (2)那么在接下去的循环中,被淘汰的人不参与报数: (3)直到仅有1人没被淘汰,并显示出他之前的编号. 程序实现如下: cl ...