【算法导论】插入排序
循环不变式
在数学上阐述了通过循环(迭代,递归)去计算一个累计的目标值的正确性。
关于循环不变式,我们必须要证明三条性质:
- 初始化:循环第一次迭代之前,它为真。
- 保持:如果循环的某次迭代之前它为真,那么下次迭代之前仍为真。
- 终止:在循环终止时,不变式为我们提供一个有用的性质,该性质有助于证明算法是正确的。
插入排序使用了增量方法:在排序子数组A[1,...,j-1]后,将单个元素A[ j ]插入子数组的适当位置,产生排序好的子数组A[1,..,j]。
//插入排序
#include "stdio.h"
#define MAXSIZE 1000
int a[MAXSIZE];
int main ()
{int j,i,n,key;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&a[i]);}for(j=1;j<n;j++){key=a[j];i=j-1;while(i>0 && a[i]>key){a[i+1]=a[i];i=i-1;}a[i+1]=key;}for(int i=0;i<n;i++){printf("%d ",a[i]);}printf("\n");return 0;
}
用分治法设计一个排序算法,该算法的最坏情况运行时间比插入排序要少得多。
相关文章:

gdb+gdbserver
内容摘要 远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接。使用 GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程…

Android开发技巧——去掉TextView中autolink的下划线
我们知道,在布局文件中设置textview的autolink及其类型,这时textivew上会显示link的颜色,并且文字下面会有一条下划线,表示可以点击。而在我们在点击textview时,应用将根据我们所设置的类型跳转到对应的界面。但是有时…

【算法导论】冒泡排序 选择排序
冒泡排序: //从大到小 void bubble_sort(int array[],int len) {int i,j,t;for(i0;i<len-1;i){for(j0;j<len-1-i;j){if(array[j]<array[j1]){tarray[j];array[j]array[j1];array[j1]t;} }} } 选择排序: //从大到小 void select_sort(int a…

监控平台zabbix高级配置
2019独角兽企业重金招聘Python工程师标准>>> 12月26日任务 19.12 添加自定义监控项目 19.13/19.14 配置邮件告警 19.15 测试告警 19.16 不发邮件的问题处理 添加自定义监控项目 zabbix可以自定义监控项目,满足个性化的需求。例如网站注册量、访问量等具体…

linux内存实际占用分析
作者: 黄永兵/译 出处:51CTO.com 阅读提示:本文是为那些经常疑惑的人准备的,“为什么一个简单的KDE文本编辑器要占用25M内存?”导致大多数人认为许多Linux应用程序,特别是KDE或GNOME程序都象ps报告一样臃肿...【51CTO.com独家译文…

CentOS 6.5 下Vim 配置图解
分享个CentOS 6.5 下Vim 配置图文详解,希望对大家有所帮助。 1. 登录并进入你常用的用户名下,查看其主目录 命令: # su xxx $ cd xxx $ ls -a 2.查看并建立目录和文件 首先看你的主目录~/ 下是否有.vimrc文件,没有就输入指令 $ to…
【ACM】杭电OJ 1106 函数atoi
函数atoi是把字符串转化成整数的函数,头文件为 #include "stdlib.h" e.g. 运行环境:Dev-C 5.11 杭电1106 调用了sort函数,运行的时间相对长一些。 #include "stdio.h" #include "string.h" #include "…

docker-dockerfile
docker文件存储驱动dockerfile镜像构建指令示例dockekr镜像是只读的,对容器修改的内容,一旦容器退出,所有的内容将会丢失。镜像是分层的,最上的一层为读写层(写时复制和用时分配) 文件系统存储驱动…

proc/[pid]/maps 文件解释
proc/[pid]/maps 文件解释 查看进程的虚拟地址空间是如何使用的。 该文件有6列,分别为: 地址:库在进程里地址范围 权限:虚拟内存的权限,r读,w写,x,s共享,p私有; 偏移量:库在进程里…

【ACM】UVa 1339
【题目】:给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一一映射,使得两个字符串相同。输入两个字符串,输出“YES”或者“NO”。 【分析】:既然字母可…

springBoot PUT请求接收不了参数的解决办法
2019独角兽企业重金招聘Python工程师标准>>> 做项目的时候,想把接口写标准点,于是在更新内容的时候采用put提交内容,但是提交内容时总是获取不到参数,总是选择参数为null。 首先贴出我的put的方法控制器的代码 和之前的…

七牛云内容审核服务被选为「上海首批人工智能创新产品」
近日,上海人工智能应用场景建设实施计划正式发布,这是全国首次面向人工智能应用场景需求的征集计划。上海 10 大人工智能应用场景、19 个具体点位需求和 60 个人工智能创新产品集中首发,其中,上海七牛信息技术有限公司(…

linux动态库命名规则
说道“动态库版本兼容”,很多人头脑中首先蹦出的就是“Dll Hell”。啊,这曾经让人头疼的难题。时至今日,这个难题已经很好地解决了。 在进一步讨论之前来思考一个问题:Linux下为什么没有让人头痛的“DllHell”? 回答…

如何在同一系统里同时启动多个Tomcat
需要在同一系统里启动多个tomcat,应该怎么处理? tomcat是个服务程序,需要占用几个通讯端口,所以默认情况是不能启动多个tomcat,如果要启动多个tomcat,需要修改配置文件,通过在配置文件设置不同的通讯端口就可以做到.文件 %TOMCAT_HOME%/conf…

【ACM】Uva 455
【题目】:如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串以k为周期。输入一个长度不超过80的字符串,输出其最小正周期。 注意以下几点: 1、它的最小正周期一定可以被它的长度整除。 2第一个大循环下 i 可以等于…

前端自动化构建工具webpack (二)之css和插件加载总结
1. webpack只识别js文件,其他文件都需要转换成js文件。所有文件都是模块; 2. css解析 css需要css-loader ---》style-loader -----》less-loader less文件还需要less-loader (注意书写顺序) 3. plugins:他是一个数组&#…

使用command对象操作数据库
1.Command对象查询数据库 protected void Button1_Click(object sender, EventArgs e){//读取web.config节点配置string strcon ConfigurationManager.ConnectionStrings["testjm"].ConnectionString;//实例化sqlConnection对象SqlConnection con new SqlConnectio…

浅析C语言之uint8_t / uint16_t / uint32_t /uint64_t
一、C语言基本数据类型回顾 在C语言中有6种基本数据类型:short、int、long、float、double、char 1、数值类型 1)整型:short、int、long 2)浮点型:float、double 2、字符类型:char 二、typedef回顾 …

【ACM】UVa 489 刽子手游戏(自顶向下)
【题目】 Hangman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下: 1、答案单字写在纸上(每个字元一张纸),并且被盖起来,玩家每次猜一个英文字元(le…

ssh远程执行多个命令
shell远程执行: 经常需要远程到其他节点上执行一些shell命令,如果分别ssh到每台主机上再去执行很麻烦,因此能有个集中管理的方式就好了。一下介绍两种shell命令远程执行的方法。 前提条件: 配置ssh免密码登陆 对于简单的命令&am…

【ACM】魔方矩阵
输出魔方矩阵 1、将1放在第一行中间一列; 2、从2开始直到nn止各数依次按下列规则存放;每一个数存放的行比前一个数的行数减1,列数加1; 3、如果上一个数的行数为1,则下一个数的行数为n(指最下一行&#x…

iOS 秒数转换成时间,时,分,秒
//转换成时分秒 - (NSString *)timeFormatted:(int)totalSeconds{ int seconds totalSeconds % 60; int minutes (totalSeconds / 60) % 60; int hours totalSeconds / 3600; return [NSString stringWithFormat:"%02d:%02d:%02d",hours, minutes,…

charles和Fiddler感觉哪个更好用
1.fiddler还可以抓HTTPS的包,解析出来都可以2.charles更直观,可能是我先用charles的缘故。charles遍历一个站点,可以右键另存,保存全站文件资源。扒站首选, charles也可以抓https,我改游戏也是抓的https包

systemd用法
一、开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。 如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。 $ sudo systemctl enable http…

C#实现php的hash_hmac函数
from:http://blog.csdn.net/ciaos/article/details/12618487 PHP代码示例如下<?php $res1 hash_hmac("sha1","signatureString", "secret");echo $res1."\n";//ee1b654aa861c41fd5813dc365ef106c9801f8f6echo base64_encode($res…
【ACM】杭电OJ 2015
注意输出格式!!!! #include <iostream> #include <cstring> using namespace std; int main () {int m,n,i,sum,flag;while(cin>>n>>m){sum0;flag0;for(i1;i<n;i){sum(2*i);flag;if(flagm){sum/m;cou…

AGC002[BCDEF]题解
F是计数于是就做(kan ti jie)了 B - Box and Ball 模拟一下 每个盒子开一个d表示有的球数 可能存在红球的打个标记 传递一下就行了 #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define inf 2002…

物联网11种通信协议
今天的网络通信技术也是日新月异,有众所周知的WIFI、Bluetooth、Zigbee、2G、3G、4G蜂窝网络,也有新兴的LiFi、AirGig、量子通信等,更有物联网产业爆发前夜,市场衍生出来的一些比较有前景的通信技术,如以窄带物联网NB&…

php 数组的使用
2019独角兽企业重金招聘Python工程师标准>>> 一、字符串和对象,数组之间的相互转换 public function index(){$product array();$product["name"] "apple";$product["price"] 6000;$products array();$products[] $pr…