lizhenqiu blog
最新评论流与站内评论搜索
Comment Stream
最新评论聚合
共 2900 条评论
Current Page
链接聚合
链接标签分页
Latest
评论流
夺回不被绑架的人生,就是获得自由的第一步
原来你们是这样的公司...
夺回不被绑架的人生,就是获得自由的第一步
听说高考完的大学生,好多都跑去整容了
WordPress主题模板对应文件目录修改基本知识
简谈八大排序算法知识详解
二原选择排序出错 当例子为{9,8,7,6,5,4,3,2,1,0}时
希尔排序那里a[j+dk] = a[j];应改为a[j] = a[j-dk];
虽然对结果无影响,但每次都多了一次无意义的移位
对于桶排序我也是没看懂,你这是什么桶排序,我怎么没见过?桶排序内部可用冒泡,选择,乃至快排?你又何必用桶呢?直接用这些排序就是了。
不是很理解楼主写得那个正向和反向同时进行的冒泡排序。和传统的比,比较的次数一次没少,还判断不了最好情况(有序数列O(n)的情况)
首先,楼主写了这么多辛苦了!有些总结得不错,但是提供的代码最好自己先测试下,有些写的比较繁琐,比如直接插入排序,有些还有错误,比如迭代的归并排序。我总结了一下常见的排序算法的源码并写了详细的注释,希望能和楼主交流下
归并排序,数组长度为奇数时候有问题呀
tmp = q; q = rf; rf = tmp; //交换q,rf,以保证下一趟归并时,仍从q 归并到rf
我对于这句话有个疑问:
MergeSort(a, b, 10);
其中b应该是辅助数组,但是我添加出来的那句话里,不会导致,最后自己都不清楚排序好的是数组a还是数组b?
文中冒泡算法改进1似乎是没有效率提升的,我在元素比对时进行了count++的操作,最终的count数与原始版本的一致。
我的测试数组:{ 4, 7, 8, 9, 3, 2 }
这是原始版本的冒泡:最终count为15
这是冒泡改进1,最终count也是15
请指教。
感谢博主的分享。这里我也总结了几种常用排序的算法,还请博主多多指教
直接插入排序中, while(x < a[j]) //查找在有序表的插入位置 应该改为 while(x<a[j] && j>=0)
应该先判断索引 j>=0
楼主 归并排序 的递归实现里
ElemType *rf2;
rf2 是不是存的临时结果啊,这样不申请空间不会有内存问题吗?
是不是要写成 rf2 = new ElemType....?
楼主,貌似堆排序中的
int child = 2*s+1;错了吧,该语句已经将child指向右节点了。
我认为应该把所有child下滤的语句改成child=child*2;同时初始化中将child=2*s,确保child指向的是左节点。
int temp=arr[i];
int child=i*2;
while(child<len)
{
if(child+1<len&&arr[child]>arr[child+1])
child++;
if(arr[i]>arr[child])
{
arr[i]=arr[child];
i=child;
child=child*2;
}
else break;
arr[i]=temp;
}
代码如上;
没错的,因为第一个元素下标是0,所以,第i个根节点的左子节点下标就是2*i+1;如果第一个元素下标是1,那么第i个根节点的左子节点下标才是2*i。
插入排序:
/**
* 插入排序
*/
public static void insertSort()
{
int[] arrs = {49,38,65,97,76,13,27};
for(int i=1;i<arrs.length;i++)
{
if(arrs[i] >= arrs[i-1])
continue;
else
{
int k = 0;
while(i-1>=0 && arrs[i] < arrs[i-1])
{
int temp = arrs[i];
arrs[i] = arrs[i-1];
arrs[i-1] = temp;
i--;
k++;
}
i=i+k;
}
}
}
选择排序的改进-二元选择排序写错了,知识因为博客的给的数组恰好掩盖了错误,这是我正确的代码,用java实现:
public class Main
public static void main(String[] args){
int[] a = {8,2,5,4,1,9,10,3,7,12,6,4,123,5,32,12234};
SelectSort(a, a.length);
}
public static void SelectSort(int r[], int n){
int i ,j , min ,max, tmp;
for (i=0 ;i <= n/2;i++) {
// 做不超过n/2趟选择排序
min = i; max = n-i-1; //分别记录最大和最小关键字记录位置
for (j= i+1; j< n-i; j++) {
if (r[j] > r[max]) {
max = j ;
continue ;
}
if (r[j]< r[min]) {
min = j ;
}
}
//该交换操作还可分情况讨论以提高效率
tmp = r[i]; r[i] = r[min]; r[min] = tmp;
tmp = r[n - i -1]; r[n - i -1] = r[max]; r[max] = tmp;
print(r); //打印每趟排序的结果
}
}
public static void print(int[] a){
for (int i : a) {
System.out.print(i + " ");
}
System.out.println("");
}
}
不对,第一个元素不是最大,也还可能出错
我发现一个神奇的现象,只要当数组第一个元素为组中最大时,二元插入算法会出错,其他情况就没事,你们说为什么
楼主总结的很棒。之前没仔细研究过堆排序,看了以后发现堆排序性能很高。
堆排序那节的堆调整函数,我感觉这样写会更简洁易懂
感谢楼主分享!
我将每个算法运行了一遍,其中nlogn算法用亿级数量级;
已全部实现。
中间一些算法有误,提示一下楼主:
如归并算法,在待排序数量大于1万时候排序结果会有问题。
成功的故事只能倒叙着讲
国内一些大平台的推荐算法
童鞋,我们发现你刚才在搜索馒头,正好面粉开通了微博,记得关注哦。
Metinfo前后台去除删除版权修改代码
Metinfo前后台去除删除版权修改代码
1、从后台入手,发现改掉模板中的title信息就会提示“请不要尝试去掉'Powered byMetInfo'版权标识”;
2、admin/index.php下引入了require_once 'login/login_check.php';最后调用了include template('index');最后依据依然是include语法,也就是把template函数的输出结果包含到程序中来,检查了这个函数,只是返回一个文件路径,这个应该没鬼。
3、关于footer()函数,注释掉后网页应该可以正常浏览,但是对比前后的源码,可以看到如果不注释掉的话会多出许多/si","",$output);
if(!stristr($output,"MetInfo {$metcms_v}"))$output.=$foot;
if($_SESSION[poweredflag]==2)$_SESSION[poweredflag]=3;
echo $output;
}
function ob_pcontent(){
$output=ob_get_contents();
if($output=="") die("请不要尝试去掉'Powered by MetInfo'版权标识!");
$output=preg_replace("//si","",$output);
if(!stristr($output,"MetInfo")) {ob_end_clean();
die("请不要尝试去掉'Powered by MetInfo'版权标识!");}
$_SESSION[poweredflag]=$_SESSION[poweredflag]==3?3:2;
}
if(!isset($_SESSION[poweredflag])) $_SESSION[poweredflag]=1;
$poweredby=1;
$p0weredby=1;
————————————————————————————————————————
看到这个函数就好办了,直接注释掉这句判断:
if(!stristr($output,"MetInfo"))
{ob_end_clean();
die("请不要尝试去掉'Powered by MetInfo'版权标识!");
}
,然后就可以修改后台的标题了!
$foot=''; //"Powered byMetInfo{$metcms_v}©2008-{$m_now_year} MetInfoInc.";
这句话改为$foot='';
注释掉:if($output=="") die("请不要尝试去掉'Powered by MetInfo'版权标识!");
——————————————————————————————————
至此应该说前后台在没有版权影响了。完美破解
11、最后总结一下,要破解该系统,仅需在common.inc.php将run_strtext(connect_sqlmysql($php_text[1]));替换为:
global $foot;global $poweredby;global $p0weredby;global$metcms_v;global $m_now_year;
$foot='';
function ob_php_out(){
global $output;global $foot;
$output=preg_replace("//si","",$output);
if($_SESSION[poweredflag]==2)$_SESSION[poweredflag]=3;
echo $output;
}
function ob_pcontent(){
$output=ob_get_contents();
$output=preg_replace("//si","",$output);
$_SESSION[poweredflag]=$_SESSION[poweredflag]==3?3:2;
}
if(!isset($_SESSION[poweredflag])) $_SESSION[poweredflag]=1;
$poweredby=1;
$p0weredby=1;
Metinfo前后台去除删除版权修改代码
一位普通美国民众对转基因的疑问
至于贴标签说明,是为了回应群众要求的知情权吧,
不贴,你们说把群众当小白鼠,贴了,你们又说肯定有不可告人的目的,
标签很为难啊。。。
一位普通美国民众对转基因的疑问
就像前面有网友提过的,这文章本身有逻辑矛盾:如果贴了标签,会被认为可能有问题,否则为什么要专门贴标签区分呢?但如果不贴,又会被认为是在隐瞒真相,否则为什么怕人知道?也就是说贴不贴都不对,总之就是不对……
问题的关键其实是双方争论的根本不是同一个问题,反转人士担心的是其危害,特别是“基因级别的危害”;而挺转人士担心的是转基因被妖魔化。两方其实都有道理,但大多数围观群众并不会仔细去想里面道理——如果反转人士大获全胜,结果肯定是转基因成为过街老鼠人人喊打,结果就是这么个有着极大应用价值乃至通过促进基因科学而改变整个人类历史走向的技术被人类自己主动放弃了,甚至会因此掀起一轮反技术浪潮;但如果挺转人士大获全胜,结果就是转基因成为“纳米”这样的时髦事物,那就不可避免地出现商业化的技术滥用而导致大量问题。不过现在看来后一个后果还要好一点,毕竟转移因技术滥用的后果是暂时的,不会对人类社会及环境造成不可逆转的损害(从某种意义上说这一点才是双方应该争论的焦点),但前一种则可能造成人类思想的大步倒退。
所以,转基因是不是会有危害、安全不安全这个问题没有意义,因为答案很简单——有可能有潜在的危害,就跟当初人类学会使用的火一样,安不安全取决于人怎么用。
一位普通美国民众对转基因的疑问
说实话,“转基因技术”和“转基因作物”是两回事。主张贴标签没错,这事儿就好像你用了再生材料制造商品,厂家和鉴定机构都可以说这个安全可靠,但消费者依然有知情权。顺便,转基因技术和其他一切技术一样,比如我做存储系统,公司当然会宣称它对数据的保护安全有效,如果有必要我本人也可以提供大堆的实验报告证明它很靠谱,但是事实上你要我说这玩意儿绝对不会出问题?那可怎么保证,谁知道在代码的哪一段有个坑呢?当然,就像存储系统一样,我可以负责任的说“我司的产品可靠性不亚于其他市售产品”,目前的转基因农产品也可以说“安全性不亚于自然产物”。不过还是那句话,贴个标签呗,谁知道哪个产品其实有个坑呢?
一位普通美国民众对转基因的疑问
当反智主义者开始认真思考的时候。。。他们还是会站在反智的那一面思考。
一位普通美国民众对转基因的疑问
反对者和支持者都犯了个毛病,那就是以偏概全。转基因只是种手段,他不能保证所有转基因的作物都是安全的,也不能保证转基因出来的作物对所有人都安全。就像不是所有天然的植物都能作为人类的食物对不对? 实验室既然有能力做出转基因的玉米,当然也有能力做出转基因的毒蘑菇。举个极端的例子,如果有人对苹果过敏,对梨子不过敏。那么苹果梨他到底能不能吃?自然界的植物是人类经过几千上万年的尝试,才确定出适合人类食用的这些作物。哪怕如此,依然存在有些人能吃,有些人不能吃的食物。最典型的例如对花生,芒果,海鲜,牛奶这些最常见食物过敏的人依然很多。而转基因大部分没经过长时间的人体实验就直接上市,谁能确定是否对所有人都适合?我支持转基因,一棒子打死肯定不对,但是认为依然需要必要的长时间的大范围的人体实验才能保证转基因食品的安全性。
我看过一个故事
一家五星级酒店,半夜三更陆续有人跳楼,120都忙不过来…原来是一个家伙喝醉了找不到房间,就在走廊挨个敲门,边敲边喊 : 我是继伟,开门!我是继伟,快开门!于是就有人相继跳楼…有一省委书记还算冷静,没跳楼,隔着门问 : 你是市纪委还是省纪委?继伟回答 : 什么他妈省的市的,我是钟继伟! 后来房间无声,待服务员开门进去发现,书记猝死了……
我看过一个故事
要么忙于生存,要么赶着去死
强者自救,圣者渡人
纯原生JS幻灯片-实现多屏切换效果代码
全屏幻灯片滚动代码
常用html、demo代码
我身边有个这样的人
江湖:从前有一个人出来混,一直被对手打压欺负,然后他苦练功夫,终于报仇雪耻,他叫乔丹;从前有一个人出来混,一直被对手打压欺负,然后他叫了一帮兄弟,也终于出头,他叫詹姆斯;现在有一个人出来混,被对手打压欺负,然后他说“让我加入你们吧,我也想欺负人”,他是杜兰特。
Facebook设计总监:我的产品设计年度总结
一项产品的成功说到底还是取决于用户,在此基础上的团队合作与执行才是巩固产品的驱动力,FB成功至今是因为抓住了用户的心。
常用html、demo代码
找回win10的照片查看器
找回win原来的图片查看器Windows10.rar