- 博客(61)
- 收藏
- 关注
原创 Android 广播机制
Android 广播的注册 发送 接收 过程均是通过Binder方式与AMS交互来完成的Android 广播接收器注册过程:1. 向AMS发送广播注册请求2. AMS接收到请求后,完成注册向AMS发送广播注册请求, 通过ContextImpl的registerReceiverInternal()方法实现 registerReceiverInternal的
2017-11-27 15:51:08
288
原创 shell 函数 返回值
#!/bin/bash#函数返回值:#1. return(0-255) 通过$?获得#2. echo 通过`function`获得,非结果echo到文件或者/dev/null ,返回值是数组,字符串,大于255的整数,可以使用echo#3. 声明全局变量 declare 返回值是数组,字符串,大于255的整数,可以使用echo# echo 最
2017-11-05 17:51:51
835
原创 shell 函数 入参说明
1. 入参个数: $#2. 入参: $0 脚本名 $1第一个参数3. $@ 和 $*: "$@" "$*" 都是所有入参 $@ 将入参变成一个数组 $*将入参变成一个字符串4. 数组作为入参: fucn2 ${arr[*]} ,函数内部获取入参数组: arr=` echo "$@" `demo :
2017-11-05 17:49:22
3948
1
原创 shell 数学计算
shell 数字运算分两类: 整数运算,小数运算整数运算,2种:let c=$a+$bc=$[ $a+$b ]小数运算:c=`echo "scale=2 ; $b/$a"|bc `demo :#!/bin/bashfunction test1 { a=2 b=3 let c=$a+$b ech
2017-11-05 16:35:52
308
原创 3.10 约瑟夫环问题--循环单链表解决
/****************************************************************约瑟夫环问题*问题描述:N个人做成一圈,从第K个人开始报数游戏(从0开始报数), 报M的出列,最后剩下的一个人获胜*算法: 循环单链表(无头节点)*新建单链表: 返回value最小的节点当作"head",新建过程即是插入过程*删除(出列操
2016-04-04 18:28:46
475
原创 任意精度整数运算(计算2的4000次方)
/***********************************************************************************任意精度整数运算*例如计算:2的4000次方*算法核心:使用数组完成大整数的乘法,每一个单元保存一位数字。*数组乘法算法: 每一次乘法: 1.计算当前位乘2的积(tmp=N*arr[i]+high_number;)
2016-04-04 17:01:19
1572
1
原创 [0,N]范围内0到9的分布统计
/***********************************************************************************数字分布问题*计算[0,N]范围内,特定数字的个数。譬如计算[0,12]范围内1 的个数,即:f(12)= 5*算法1(暴力循环):从1-N,累加每一个数字中的1的个数 O(N*logN)*算法2(寻找规律,得到公式):
2016-04-04 12:18:13
591
原创 多项式的和,积(优化版)
/******************************************************************************************求多项式的和,积(改进版)*核心思想:输入的多项式先排序,再运算*多项式(p1,p2)求和算法: 1.多项式排序O(logMN); * 2.求和过程,简化成了计算
2016-04-03 22:15:08
814
原创 C 字符与字符串的库函数总结
一. 字符 char1.字符的输入输出 1.1 输入 getc(stdin/fp) getchar() 基本函数: getc(stdin/fp); // #define getchar() getc(stdin/fp) 1.2 输出 printf putc() putchar()
2016-04-03 10:05:14
339
原创 C实现strstr函数
char * my_strstr(char *str, char * substr) { char * pre_str=str; char * pre_substr=substr; while(*str && *substr) { if(*substr && (*str == *substr)) { //如果匹配部分,则继续进行匹配 ++str; ++subst
2016-04-01 23:34:21
317
原创 中缀表达式转成后缀表达式,以及后缀求值
/*************************************************************中缀表达式转成后缀表达式计算后缀表达式*使用数组栈完成*问题描述: 输入一个中缀表达式: a+b*c+(d*e+f)+g,转成后缀表达式*算法: 1.如果是数字,则直接输出; 2.如果是计算符或者括号,则利用栈判断选择何种操作 2.1
2016-03-26 11:37:12
516
原创 括号匹配判断
符号匹配*使用数组栈完成*问题描述:读取一个文件,检查文件中的小括号(),中括号[],大括号{}是否匹配,如果不匹配,输出不匹配的行的行数。*核心代码:遇到右括号的处理过程:首先判断是否空栈,再判断是否是空栈**author: fangchang*date: 2016/03/25
2016-03-25 17:55:05
426
原创 基数排序的数组/链表实现
/*************************************************************基数排序*使用数组/链表完成*核心代码: radixSortByArr(int arr[], int n) / radixSortByList(int arr[], int n)*使用数组实现的算法核心: res[ arr[i] ]+=1 ; //将待排序数组
2016-03-25 11:38:07
605
原创 链表计算多项式的和,乘积
/*******************************************************************************计算多项式的和,乘积*使用链表完成*核心代码: 合并同类项( joinSameIterm(pnode head) )*多项式的和: 将两个链表合并成一个链表,对新的链表合并同类项*多项式的积: 使用新链表记录乘积的结果,
2016-03-24 18:19:30
580
原创 贯穿10*10数组的随机步
#include#include#include#define N 10 //定义地图 10*10#define NUM_direction 4 // 4个方向#define TRUE 1#define FALSE 0void answer();int Is_over(int i, int j); //越界判断void move(int * i, int *
2016-03-09 14:29:51
731
原创 C++面向对象编程
1.oop: 数据抽象 (类实现) 继承 (类派生实现) 动态绑定 (虚函数,基类指针调用虚函数)继承中的内存分配: 基类保存自己的数据结构, 派生类保存基类+自己的数据结构。 虚函数一直保存在基类中。例如:class A{public : int a;virtual print()
2015-09-03 11:12:27
299
原创 前序遍历+中序遍历生成二叉树
//-------------------------------//根据前序+中序遍历,重构二叉树//---------------------------------#include#includeusing namespace std;typedef struct treenode { char data; struct treenode * left; struct
2015-08-21 16:29:29
382
原创 c++类实现字符串的基本函数
//--------------------------------------------------------//date:2015/08/11/20:12//author: fangchang//包括读写,复制,连接,比较等函数//字符串的惯用话(寻找\0的地址 复制 )//itoa考虑是否为负数,考虑进制(比较烦,8进制的首位是0,16进制是0X)//------------
2015-08-11 20:15:42
290
原创 C++类实现hash表的抽象数据结构(链式解决冲突)
//--------------------------------------------------------------------------//本例中采用链式解决冲突,便于查找//hash表适合存储和查找操作//构建hash要尽量减少冲突,hash表空间开的大一点,用空间换时间//hash表的一种变种是位图表,stl中的bitmap<>,多用于大数据查找问题//-------
2015-08-11 16:01:28
416
原创 c++类实现二分查找+二叉树查找
//---------------------------------------------------//1.二分查找树: 二分查找法对于有序的数组有效(数组+有序)//2.AVL树: 二分查找法的优化是使用二叉查找树,最好是AVL树//---------------------------------------------------#ifndef SEARCH_H#d
2015-08-07 19:31:27
496
原创 c++类实现二叉查找树的抽象数据结构
说明:1.0 二叉查找树可以看成是改进的二分查找法: 不需要依赖有序的数组1.1 对于二叉查找树的前缀/后缀的查找,可能需要改变二叉树的类型,增加parent指针1.2 对于插入/删除/查找(二分,最值之类)的操作,不需要考虑parent指针的问题1.3 二叉查找树的平衡度可能很差,可能的解决办法:1.随机读取数组中的数据; 2.重新构建一颗AVL树#ifndef BINARYTREE_H
2015-08-07 19:27:44
360
原创 c++类实现基本的6种排序算法
#includeusing namespace std;class SORT{public: SORT(){}; ~SORT(){}; void print(int arr[],int size) const; void quickSort(int arr[], int left, int right) const ; //快排 void bubble(int arr[],
2015-08-06 19:16:39
575
原创 c++类实现2叉树的抽象数据结构
#include#include#includeusing namespace std;typedef struct linknode {int data;struct linknode *left;struct linknode * right;}*ptree,tree;class BITREE{public:BITREE(){}~
2015-08-05 19:46:56
559
原创 循环队列的c++类
//-----------------------//循环链表的难点在于判断队列的空/满状态//空:_queue->front==_queue->rear//满:_queue->front==(_queue->rear+1)%_queue->maxsize (为了区别于空的状态,此时队列还剩一个位置没有存数据)//---------------------------#
2015-08-05 13:21:03
429
原创 c++实现链表的抽象数据结构
#include#includeusing namespace std;static const int arr[]={11,2,31,4};static const int length=sizeof(arr)/sizeof(int);typedef struct listnode{int data;struct listnode * next;}
2015-08-04 20:13:52
759
原创 c++之string类编写
#include#includeusing namespace std;class String{public:String(const char *str = NULL ); //构造函数String(const String &other); //复制构造函数~String(void);
2015-07-30 15:48:12
389
原创 stl学习一
stl概括基础函数:size() 容器元素的数目swap() begin() 第一个元素的迭代器end() 最后一个元素的迭代器+1X::iterator iter; 迭代器(相当于指针)seq.front() 第一个元素seq.back() 最后一个元素高级函数:seq.push_bac
2015-05-26 20:23:14
358
原创 生成二叉排序树
构建原则: 左子树#--------------------------------#插入法生成二叉排序树#--------------------------------#includetypedef struct BSTnode { int data; struct BSTnode *lchild, *rchild;}*BSTnod
2015-04-29 16:58:37
2852
原创 1.shell脚本编译运行.c程序
#!/bin/bashfile=$1 #读取脚本名file_run=`awk -v str=${file} 'BEGIN{len=split(str,str_list,".");print str_list[1]}'` #生成编译后的c程序名称gcc -o ${file_run} $file #编译命令[ $? -eq 0 ] && ./${file_
2015-04-29 15:59:28
2366
原创 shell中的(交集,并集,差集 等)统计
1. 2个文件的去重并集 cat 1 2 | awk '!a[$0]++ {print $0}' (最强悍) cat 1 2 | sort | uniq -u (数据量过大,容易出错,不准确) cat 1 2 | sort -u (坑:此方法比较脆弱,容易失效) 优先级: awk > sort+uniq > sor
2015-04-28 10:34:39
1114
原创 mutt发送邮件--设置发件人地址
先举例子:local mail_list="fangchang@baidu.com"local date=$1local file=$2echo -e "thanks \nfangchang" | mutt -s "lal Customer details-${date}" ${mail_list} -a ${file}echo 输出的是邮件
2015-04-27 14:56:16
1871
原创 python操作mysql数据库如何解决中文乱码的问题
1.python操作mysql 安装MYSQLdb库 库地址:http://pan.baidu.com/disk/home?fr=ibaidu#path=%252F%25E8%25BD%25AF%25E4%25BB%25B6%25E9%259B%2586%25E5%2590%25882.编辑mysql的配置文件 地址:C:\Program Files\MySQL\My
2015-04-27 11:10:23
446
原创 python编码
utf8:国际编码,1个字节表示英文,3个字节表示中文gbk:国家标准,2个字节表示中文unicode:统一码,二进制编码gbk与utf的编码方式的不同,导致了不同类型的文件打开方式不同。gbk格式的文件,要用codes.open(file_name,'r','gbk')的方式打开,读写的时候,line = line.rstrip("\n").encode('utf
2015-04-23 12:15:41
335
原创 单链表的基本操作(代码优化)
#include typedef struct node { int data; struct node * next;}linknode;linknode * initlink(){ //初始单链表 linknode * head
2015-03-16 17:27:46
484
原创 动态数组实现hash表
#include #define HASHSIZE 12#define NULL_KEY -111typedef struct { int *arr; int size;}Hashmap;int initHash(Hashmap *hashmap);void print(Hashmap *hashmap);int main(void) {
2015-03-12 17:07:14
509
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人