- 博客(22)
- 收藏
- 关注
原创 图示经典算法--三向切分的快速排序
三向切分的快速排序对于含有大量重复元素的数组,使用三向切分快速排序堆快速排序进行改进。从左到右遍历数组一次,维护一个指针lt使得a[lo..lt-1]中的元素小于,一个指针gt使得a[gt+1..hi]中的元素都大于v,一个指针i使a[lt..i-1]中的元素都等于v,a[i..gt]中的元素都还未确定。a[i]小于v,将a[lt]和a[i]交换,将lt和i减一;a[i]大于v,将a[gt]和a
2016-03-31 19:15:48 1369
原创 图示经典算法--快速排序
快速排序快速排序是一种分治的排序算法,通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。class QuickSort(object): """快速排序""" @classmethod def sort(cls, a):
2016-03-29 19:45:17 907
原创 图示经典算法--自底向上的归并排序
自底向上的归并排序自底向上的归并排序使用分治思想,将数组先两两归并,再四四归并,然后八八归并,直到整个数组有序。class MergeBU(object): """docstring for MergeBU""" @classmethod def merge(cls, a, lo, mid, hi): # 将a[lo...hi]复制到aux[lo...hi]
2016-03-26 16:25:40 1036
原创 图示经典算法--自顶向下的归并排序
自顶向下的归并排序归并排序使用分治思想,将两个子数组排序,通过归并两个子数组来将整个数组排序class TopDownMergeSort(): """自顶向下的归并排序""" @classmethod def merge(cls, a, lo, mid, hi): # 将a[lo...hi]复制到aux[lo...hi] cls.aux[lo:h
2016-03-26 15:54:04 924
原创 图示经典算法--希尔排序
希尔排序希尔排序是插入排序的一种。确定排序间隔h按照间隔h对数组排序,保证间隔为h的元素是有序的缩小h值,再对间隔h数组排序,直到h为1def shell_sort(a): n = len(a) h = 1 while h < n // 3: # 计算间隔 h = 3 * h + 1 # 1, 4, 13 while h >=
2016-03-26 11:05:03 780
原创 图示经典算法--插入排序
插入排序插入排序基本思路,将待排序数据插入已经排序的数据的适当位置def insertion_sort(data): n = len(data) # 外循环 for i in range(1, n): j = i # 对索引i左侧数据排序,保证索引i左侧数据是有序的 while j > 0 and data[j] < data[
2016-03-25 19:46:14 514
原创 图示经典算法--选择排序
选择排序找到数组中最小的元素a将a和数组的第一个元素交换位置(如果第一个元素就是最小的元素那么a就和自己交换)在剩余的元素中找到最小的元素,将它和数组的第二个元素交换位置如此往复,直到将整个数组排序def selection_sort(data): n = len(data) # 外循环,给第i个位置交换数据 for i in range(n): m
2016-03-23 19:00:43 486
原创 html5学习之侧边栏实现
设置布局隐藏显示侧边栏添加菜单内容为菜单列表添加事件设置active菜单设置默认选中菜单设置viewport使用媒体查询打算学习一些html5的知识,暂时不使用jquery.js,计划做一个侧边栏,侧边栏可以隐藏,点击侧边栏中的菜单改变content中的内容。--------------------------------- header------------------
2015-10-11 22:21:32 32667
原创 golang生成目录嵌套json使用jstree显示
目的:在浏览器上浏览电脑指定目录。技术:golang,jstree1. golang生成jstree识别的json1.1 使用”io/ioutil”读取指定目录fileinfos, err := ioutil.ReadDir(dirpath)if err != nil { log.Println("ReadDir error!" + dirpath)}1.2 使用”encoding/
2015-08-30 20:54:05 1336
转载 字符串常量引起的思考
源地址:http://www.cnblogs.com/-Lei/archive/2013/01/12/2858027.html记得以前看过一道这样的题目: 以下程序的执行结果是?#include int main(){ cha
2013-11-11 15:58:12 607
原创 android使用WindowManager显示自定义View
调用方式:ShowMessage showMessage = new ShowMessage(getApplicationContext());//显示showMessage.show();showMessage.setMessage("Hello World!")//消隐showMessage.hide();代码:import andr
2013-09-06 17:13:20 1017
转载 python3.2调用google翻译
原文使用python2.6:修改在python3.2下测试成功#coding=utf-8__author__ = "zhangshy"__date__ = "$Date: 2013/09/05$"import reimport urllib.requestimport urllib.parsedef translate(text): '''
2013-09-05 19:18:03 800
原创 python使用HTMLParser保存网页图片
#coding=utf-8from HTMLParser import HTMLParserimport urllibimport sysimport osclass MyHTMLParser(HTMLParser):def __init__(self):HTMLParser.__init__(self)self.links = []def handle_starttag(self, tag, a
2013-09-05 10:36:49 930
原创 vim配置
1:查看vim配置文件 cat /usr/share/vim/vimrc sudo gvim /etc/vim/vimrc.local添加一下内容: set nuset hlsset incsearchset showmatchset matchtime=5" 自动格式化 set formatoptions=tcrqn " 继承前一行的缩进方
2013-08-15 15:23:12 467
原创 lseek
#include #include #include #include #define FILE_MODE S_IRUSR|S_IWUSR|S_IRGRP|S_IROTHchar buf1[] = "abcdefghij";char buf2[] = "ABCDEFGHIJ";int main(void){ pid_t fd;
2012-07-08 13:17:23 424
原创 函数指针 结构体struct
#include typedef int (*func_t)();typedef struct sop{ int num1; int num2; func_t op;}opnum;int add(int num1,int num2){ return(num1 + num2);}int sub(int num1,int
2012-07-07 23:51:24 366
原创 求字符串长度的实现
#include #include int strlen_t(char *str){ int i = 0; while(*(str+i)!='\0') i++; return i;}#ifdef DEBUGvoid main(int argc,char* argv[]){ char st[] =
2012-07-05 22:34:07 268
原创 字符串指针 整形指针
字符串指针#include #include #include void tmp(char *str){ printf("2222 %p,%p\n",&str,str); str = "123456"; printf("3333 %p,%p\n",&str,str);}void main(){ char *a=ma
2012-07-05 22:07:24 329
原创 sizeof与strlen
#include #include #include void main(){ char *str = "123456"; char str2[10]="123456"; printf("sizeof char is %d\n",sizeof(char)); printf("sizeof char* is %d\n",sizeof(cha
2012-07-05 21:53:11 330
原创 union int内存类型存储情况
#include union mem{ int num; char byte[4];};void main(){ int i; union mem n; n.num = 0x12345678; printf("num is %0x\n",n.num); printf("In memory is
2012-07-05 21:41:16 346
原创 进程fork
fork()在 Linux 系统库 unistd.h 中的函数声明如下:pid_t fork(void);程序:forktest.c #include #include main(){ pid_t pid; printf("Now only one process\n"); printf("Calling fork...\n");
2012-07-05 21:38:44 217
原创 系统调用exec
fork()只能建立相同程序的副本Linux 还提供了系统调用 exec 系列,它可以用于新程序的运行。exec 系列中的系统调用都完成相同的功能,它们把一个新程序装入调用进程的内存空间,来改变调用进程的执行代码,从而形成新进程。如果 exec 调用成功,调用进程将被覆盖,然后从新程序的入口开始执行。这样就产生了一个新的进程,但是它的进程标识符与调用进程相同。这就是说,exec 没有建立一个与
2012-07-05 21:38:00 2469
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人