Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux

C语言实现冒泡排序-整数排序

C语言实现冒泡排序-整数排序

我一直觉得排序算法挺重要的,但是却没有深入的去理解它;没有深入理解就无法用代码将它实现;在腾讯的在线模拟考试中就有一题问到冒泡排序;我几乎是傻眼了!我知道这样的问题是最基础的;无论过去怎样现在要全面深入的理解所有排序算法;让我们从最简单的冒泡开始吧!Problem你想要将(4,3,5,1,2)排序成(1,2,3,4,5)你决定使用最简单的冒泡排序;Solution首先,假定你知道C语言的基本语法。vim bubble_sort.c打开编辑器后,你不要着急写...
C语言实现快速排序

C语言实现快速排序

我觉得冒泡排序是比较简单的;所以今天我们实现一个叫做快速排序的;Problem你想要将(4,3,5,1,2)排序成(1,2,3,4,5)你决定使用最简单的快速排序;Solution首先,打开你的terminal,我写得C代码通常都是用vi编辑,gcc编译;vim quickSortSample.c因为,快速排序需要对数据进行分割然后处理,再分割再处理;显然需要一个递归的过程;所以,我们先把递归结束条件写好;#include <stdio.h>v...
JavaScript设计模式之观察者模式(学习笔记)

JavaScript设计模式之观察者模式(学习笔记)

设计模式(Design Pattern)对于软件开发来说其重要性不言而喻,代码可复用、可维护、可扩展一直都是软件工程中的追求!对于我一个学javascript的人来说,理解设计模式似乎有些困难,对仅切图、做少量交互效果的FE甚至可能不会用到,但是当你开始使用Angular/Backbone等框架的时候,就无法避免设计模式、MVC/MVVM这些东西了(反正我是伤脑筋)。我学设计模式是刚开始接触编程大概三个月的时候,看一本书《大话设计模式》,里面用C#语言来写...
快速排序和三向快速排序

快速排序和三向快速排序

快速排序快速排序是一种分治的排序算法。它将一个数组分成两个子数组,将两部分独立的排序。快速排序和归并排序是互补的:归并排序将数组分成两个子数组分别排序,并将有序的子数组归并以将整个数组排序;而快速排序将数组排序的方式则是当两个子数组都有序时整个数组也就自然有序了。在归并排序中,递归调用发生在处理整个数组之前,而快速排序中,递归调用发生在处理整个数组之后。快速排序算法是最快的通用排序算法,大部分情况下,可以直接选择快速排序如上图所示,将第一个元素K作为切分元...
选择排序、插入排序和希尔排序

选择排序、插入排序和希尔排序

一些说明我将会写一系列关于算法的博客,因为我是程序员,并不是计算机科学家,也即我是搞工程的,并不是搞学术的,所以对于我来说,最重要的就是1.有哪些算法2.这些算法的原理3.这些算法的实现4.这些算法的效率而其他的,相对而言,并没有那么重要,比如算法的证明,所以以后的博客都会按照上述的思维撰写。一、首先定义一个抽象类,里面集成了排序算法所需要的共同的方法:public abstract class SortBase { public abstract In...
Angular 1 和 Angular 2 集成:无缝升级的方法

Angular 1 和 Angular 2 集成:无缝升级的方法

已经有了 Angular 1 应用程序,正在想着怎么把它升级到 Angular 2?看看我们是怎么样支持递增升级的。摘要好消息。我们计划在同一应用程序上允许 Angular 1 和 Angular 2 混合使用你可以在同一个视图中混用 Angular 1 和 Angular 2 组件Angular 1 和 Angular 2可以跨框架注入服务数据绑定可以跨框架运行为什么要升级?Angular 2 相对于 Angular 1 有很多优势,其中包括:性能有了极...
使用Swift去掉字符串中的空格

使用Swift去掉字符串中的空格

笔试面试时经常会出这样的问题:从某个字符串中删除多余的空格,因为英文是使用空格进行分词的,而URL中通常会包括非常多的特殊字符,所以这是一种很常用的做法。和OC中一样,在swift中也可以使用NSCharacterSet类来实现。对于字符串删空格操作,通常有两种情况:1.删掉字符串首位的空格:var str = "Hello, playground"let whitespace = NSCharacterSet.whitespaceAndNewlineCh...
你知道 Linux 内核是如何构建的吗?

你知道 Linux 内核是如何构建的吗?

介绍我不会告诉你怎么在自己的电脑上去构建、安装一个定制化的 Linux 内核,这样的资料太多了,它们会对你有帮助。本文会告诉你当你在内核源码路径里敲下make 时会发生什么。当我刚刚开始学习内核代码时,Makefile 是我打开的第一个文件,这个文件看起来真令人害怕 :)。那时候这个 Makefile 还只包含了1591 行代码,当我开始写本文时,内核已经是4.2.0的第三个候选版本 了。这个 makefile 是 Linux 内核代码的根 makefil...
Shell数组:Shell数组的定义、数组长度

Shell数组:Shell数组的定义、数组长度

Shell在编程方面比Windows批处理强大很多,无论是在循环、运算。bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。 定义数组在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:array_name=(value1 ... valuen)例如:array_name...
Shell for循环

Shell for循环

与其他编程语言类似,Shell支持for循环。 for循环一般格式为: for 变量 in 列表 do command1 command2 ... commandN done 列表是一组值(数字、字符串等)组成的序列,每个值通过空格分隔。每循环一次,就将列表中的下一个值赋给变量。 in 列表是可选的,如果不用它,for 循环使用命令行的位置参数。 例如,顺序输出当前列表中的数字:for loop in 1 2 3 4 5do echo "...
Shell脚本语言与编译型语言的差异

Shell脚本语言与编译型语言的差异

大体上,可以将程序设计语言可以分为两类:编译型语言和解释型语言。 编译型语言很多传统的程序设计语言,例如Fortran、Ada、Pascal、C、C++和Java,都是编译型语言。这类语言需要预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。运行程序时,直接读取目标代码(object code)。由于编译后的目标代码(object code)非常接近计算机底层,因此执行...
基于Spring声明式事务的分布式事务管理

基于Spring声明式事务的分布式事务管理

开发传统应用遇到的最大问题就是多数据源的事务一致性问题, 下面介绍一种常用的分布式事务处理方式的使用开发环境:Eclipse+Java1.7 + Tomcat7, 另外使用到的开源框架 Spring3.X提到分布式事务大家首先想到的肯定是jta,我们用到的就是基于jta的一种实现atomikos,下面就介绍一下他的使用1、依赖的jarMaven依赖代码 <!--atomikos 分布式事务依赖 --> <depe...
Spring+SpringMVC企业快速开发架构搭建

Spring+SpringMVC企业快速开发架构搭建

从2014年12月开始,一直在研究Spring的框架;并且在我们新的开发框架中得到应用;这篇文章记录了这段时间的成长记录,仅此先给共同成长的小白。为了简单,我们选择使用maven来构建项目,通过maven可以控制引入jar的版本,大大简化了jar包的管理工作,废话不多说,创建一个项目一、创建一个新项目1、创建maven项目2、选择 maven-archetype-webapp3、填写groupId、artifactId、package项目目录:二、项目创建...
WebSocket使用示例

WebSocket使用示例

HTML5给大家提供了一个很高大上的功能:WebSocket socket通信是在服务端与客户端之间进行的,所谓的WebSocket其实就是通过Html 与 后台服务器之间进行的消息传递;下面我们来介绍一下如何实现一个简单的WebSocket实例。注意:JDK必须是1.7以上版本,tomcat必须是7以上版本;spring对Websocket的支持也是只有Spring4之后才有1、编写客户端程序Html代码<div class="row-fluid"...
<< 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 >>