<?php
function qsort(&$a, $start, $end){
$left=$start; $right=$end;
if($end > $start){
$p=intval(($start + $end)/2);
while(($left <= $p) and ($right >= $p) )
{
while( ($a[$left] < $a[$p]) and ($left <= $p) )
$left++;
while( ($a[$right] > $a[$p]) and ($right >= $p) )
$right--;
$t=$a[$left]; $a[$left]=$a[$right]; $a[$right]=$t;
$left++; $right--;
if( ($left - 1)=== $p){ $right++; $p = $right; }
elseif(($right + 1) === $p){ $left--; $p = $left; }
}
qsort($a, $start, $p-1); qsort($a, $p+1, $end);
}
}
$a= array(20,40,30,70,50,1,9,4);
qsort($a,0, count($a)-1);
var_dump($a);
=======
array
0 => int 1
1 => int 4
2 => int 9
3 => int 20
4 => int 30
5 => int 40
6 => int 50
7 => int 70
优点:简短,有扩展性,支持浮点小数,支持正负数输入
#include<iostream> #include <stack> #include <cstdlib> #include <sstream> using namespace std; enum EAction{PUSH,POP,FUSION,MELTDOWN,ACTION_ERROR}; EAction decideAction(stack<char> &op_stack, char cur_op){ if(op_stack.empty()) return PUSH; char last_op=op_stack.top(); switch(cur_op){ case '+': case '-': if(last_op=='(') return PUSH; else return MELTDOWN; break; case'*': case'/': if(last_op=='*'||last_op=='/') return FUSION; else return PUSH; break; case'(': return PUSH; break; default:
(特别分享给EC7车友)
行车记录仪属于安全监视器材,所以对生产、销售、甚至购买都有一定的法规要求。
正因为守法有一定成本,所以市面上低端的行车记录仪都为三无产品。
正牌产品多在千元以上,同价为正牌产品也比三无产品的配置和功能低一个档次。
购买这些五花八门的三无产品,就要注意产品的一些特征。
多选择一些对车主实用的功能。
分辨率、像素
480p:即可以拍摄640*480
VGA画质。多在200元以内,最低到100元。硬件30万像素。软件放大或诈称“120-300万像素”
720p:可以拍摄1280*720p。多在200-600元左右,硬件100万像素,诈称“500万像素”,分2档,
cpu主频高点的,约400mhz,能压缩h.264,约400元以上。一般无漏秒。不少机型诈称“1080p”
cpu主频低点的,约200-300mhz,不能压缩h.264,约200-400元。漏秒。
1080p: 真1080p的机子多在千元以上。
广角镜:
90度:绝大多数都是90度,诈称“120-140度”,靠墙拍室内,只能拍一个直角。
(2011-09-06 03:24)
发现Java 7平台下我国2个日期之间有异常变化
'1927-12-31 23:54:07 999',//毫秒戳值为-1325491904001L
'1927-12-31 23:54:08 000',//毫秒戳值为-1325491552000L
这两个日期按理应该只差1毫秒,但实际误差352秒(5分52秒)。
百思不得其解,向sun报告过bug
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7070044
得到回复,问题出在一个开源的时区数据库tzdata中对中国时区的设定。
于是总结原因如下
1912年成立的北洋政府分有5大时区,为中原、新藏、昆仑、陇蜀、長白。都使用中国传统的“地方平时”
1928年,蒋介石北伐成功,东北易帜。南京国民政府代替北洋政府完成对全国的统一(形式)。
南京国民政府用世界共用“格林威治平时”代替原来北洋政府的“地方平时”。

在实践中经常会遇到“醴��清”这样的代理对。导致无法转码成utf8。
可以这样处理
//将代理对转换成码位值Codepoint,输入高码和低码,原创函数。
function correctSurrogatePairs($high,$low){
$mask=(1<<10)-1;
return
(($high&$mask)<<10)+($low&$mask)+0x10000;
}
$cp=correctSurrogatePairs(0xd862,0xdce7);
echo '&#x'.dechex($cp).';';//显示正确的unicode码位值。
//根据以上utf8官方格式,将任一unicode码位值转换成utf8的字节数据
//输入code point码位值,返回可显示的utf8字符。
function convertCodepointToUtf8($cp){
if($cp<0x80){
return chr($cp);
}else{
$count=0;
$out='';
while($cp>0x1f){
$out=chr(($cp&0x3f)+0x80).$out;
$cp>>=6;
$count++;
}
$out=ch
1、YAGNI原则,You ain't gonna
need it. 只实现需要的,不需要的即使预见到的需求,也不实现。unix和c是典范
2、POGE原则Principle of good
enough,够好就行。
3、Worse is
better简陋更好,又叫新泽西风格
4、KISS原则 保持简、短。
物质、硬件资源是有限的,而精神、软件的可能行是无限的。
这些原则是在有限的硬件资源之上工作时,不做无限的想象。降低成本的一种非常有效的原则
(2011-05-27 02:39)
初中简单题,编程或给出公式,求一个自然数的“壹之和”
自然数n属于 (0, 10的18次方] 的区间,在所有不大于n的正整数中,各个数位出现1的次数称为'壹之和',
例如数3,所有不大于3的正整数有1、2、3,其中只有'1'的个位数出现了1,所以3的'壹之和'为1,
例如13,有1、10、11、12、13共含有6个'1',所以13的'壹之和'为6。
输入n,输出n的'壹之和'。
要求
1、不用穷举、遍历法,要比穷举法好一点的算法或公式
2、编程语言不限,不编程给出真正可用的公式、伪代码也可
3、要求在短时间(几分钟可以,但不要几年)内能计算出N=999 999 999 999 999 999的'壹之和',
==========================
总算做出来了
对于自然数N,
设第x数位的值为d[x],共有m位数字
设该位为1时所有可能的排列数为c[x],
设级数为p[x],
设第x数位左部的数为h[x],
设第x数位的右部的数为t[x],
设“壹之和”为OneSum
如N=123456,x=3,d[3]=4,p[3]=100, h[3]=123, t[3]=56
有如下公式
当d[x]==0时, c[x]=h[x]*p[x];
当d[x]==1时,c[x]=h
<?php
setcookie('iC1', '第1个cookie:刘大', time()+3600);
setcookie('iC2', '第2个cookie:关二', time()+3600);
setcookie('iC3', '第3个cookie:张三', time()+3600);
setcookie('iC4', '第4个cookie:李四', time()+3600);
//$ip='65.40.153.155';
//var_dump($ip,md5($ip));
?>
<html>
<head>
<meta content='text/html; charset=utf8'
http-equiv='content-type'>
</head>
<body>
<script>
function trim(text){
return (new String(text)).replace(/^\s\s*/,
'').replace(/\s\s*$/, '');
}
document.writeln('响应cookie的\'大小\':
'+document.cookie.length+'个字符<br />');
var aRawCookies=document.cookie.split(';');
document.writeln('响应cookie的数量: '+aRawCookies.length+'<br
/>');
//var count=0;
for(i in aRawCookies){
var raw=aRawCookies[i].split('=');
//alert(raw[0]);
document.writeln(i+'. 名称:
public static void main(String[] args) {
//创建一个150x50,RGB高彩图,类型可自定
BufferedImage img=new BufferedImage(150, 50,
BufferedImage.TYPE_INT_RGB);
//取得图形
Graphics g=img.getGraphics();
//设置黑色
g.setColor(Color.BLACK);
//填充
g.fillRect(0, 0, img.getWidth(),
img.getHeight());
//在d盘创建个文件
File file=new File('D:/test.png');
try{
//以png方式写入,可改成jpg其他图片
ImageIO.write(img, 'PNG', file);
}catch (IOException e){
e.printStackTrace();
}
//d盘上就生成了这么个黑色图片
}
BSWAP指令可对32位,64位寄存器有效
uint32_t changeEndian(uint32_t i){
asm ('bswapl %0;'
: '=r' (i)
: 'r' (i)
);
return i;
}
对16位和128位可用XCHG指令。