php
Marx-link
这个作者很懒,什么都没留下…
展开
-
直接选择排序
思路是:循环一次队列,找出队列中最小的元素,与队列的第一位进行交换;第二次循环队列,从第二位开始循环,找出队列中最小的元素,与队列第二位进行交换;第三次循环队列,从第三位开始循环,找出队列最小元素,与队列第三位进行交换,以此类推,知道进行到最后一位:php代码:<?phpecho '';$arr = array(90,5,3,9,2,6,10,30,0,0,0,0,0);prin原创 2012-06-29 15:59:05 · 739 阅读 · 0 评论 -
改进后的直接插入排序
直接插入排序(Straight Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。把a[i]插入到a[0],a[1],...,a[i-1]之中的具体实施过程为:先把a[原创 2012-06-29 14:39:25 · 700 阅读 · 0 评论 -
一次循环实现插入中值位置
只循环一次数组,便可将要插入的值,放入到中值位置,即插入值左边的数比右边的数小;一次循环,有两个记录,一个是本身循环的记录 $i;一个是$mid,用于记录中间值应该在的位置,取数组的第一个元素作为分割点元素,把数组的大小按这个值,存放在两边,过程中不使用新的数组存储;比如数组4,3,6,5,7 ;用首位的元素4把数组分为左小,右大的序列,本算法结果是:5,3,4,6,7;为什么不是35原创 2012-06-28 19:58:00 · 695 阅读 · 0 评论 -
快速排序
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一躺排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一不部分的所有数据都要小,然后再按次方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。通常,分割点就是取数据的第一个元素;当然,分割出来的部分是取出了分割点元素的组合;第一种,花费大量的空间来满足,即是以数组第一个元素进原创 2012-06-28 19:44:26 · 564 阅读 · 0 评论 -
区块查询
分块查询是介于顺序查询和折半查询之间的一种查询方法。其实折半查询就是每次折半的分块查询,那么分块查询就是把数组分成区块,然后每个区块进行查询的查询方法。本例的数组是已经排序号的,分块后进行顺序查询。php代码:<?php$arr = array(1,2,3,4,5,6,7,8,9,10);print_r(blockSearch(3,1,$arr));function block原创 2012-06-23 11:42:50 · 1244 阅读 · 0 评论 -
使用位与运算,进行偶数 奇数判断
使用位与运算进行判定偶数&1 结果为0;奇数&1 结果为1;原理:位与运算是把数字进行二进制进行与运算,如:2&1 即是:01 & 10 = 00,所以二是偶数;奇数的最后一位是1,偶数最后一位是0,所以与1进行与,结果,奇数是1,偶数是0;php代码:even(8);function even($num){ if(!($num&1)){ ec原创 2012-06-21 16:31:50 · 1257 阅读 · 0 评论 -
php 一直从第一个开始的 猴子选大王算法
一群猴子排成一圈,按1,2,...,n依次编号;然后从第1只开始数,数到第m只,把它踢出圈,然后再从第1只开始数,再数到第m只,在把它踢出去...;如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。php代码:<?php$arr = array(1,2,3,4,5,6,7,8,9,10);//示例数组echo 'The King is :';prin原创 2012-06-26 16:03:08 · 2960 阅读 · 0 评论 -
php统计所有字符在字符串中出现的次数
效果如图算法:循环一次字符串(本例的$str),把出现过的字符串记录在一个数组(如本例的$strRecord)内,如果已经此记录函数已经有,则不记录;在每个字符串时,拿来与记录数组的值进行比较(本例的$strRecord[]['key']),如果记录里的某个值和这个字符串一样,就记录次数+1(本例的$strRecord[]['count']);当然,设置一个变量,默认为原创 2012-06-21 16:06:15 · 5202 阅读 · 0 评论 -
php 正常的猴子选大王算法
一群猴子排成一圈,按1,2,...,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。示意图:php代码:$arr = array('a','b','c','d','e','f','g','h');//示例数组echo 'The Kin原创 2012-06-26 16:57:15 · 9519 阅读 · 2 评论 -
php的Rss xml 示例 采集新浪新闻
simplexml_load_file 直接使用此函数:header("Content-type:text/html;Charset=utf-8");$content = simplexml_load_file('http://rss.sina.com.cn/news/allnews/sports.xml');//print_r($content);foreach ($content-原创 2012-06-25 19:11:13 · 3406 阅读 · 0 评论 -
折半查询
折半查询只适用于已经按照正序或者逆序排序的数组,字符串等;算法:先取数组的中间位置,无中间位置,则向下取整;从中间进行折半,大小判断,进入前半段或者后半段;再对前半段或者后半段进行同样的折半查询,直到查询到匹配的字符,才停止(本例用break,如果置于函数中,return即可)php实现的代码如下:<?php$arr = array(1,2,3,4,5,6,7,8,原创 2012-06-22 16:17:29 · 657 阅读 · 0 评论 -
冒泡排序
$str = array(1,2,3,4,5,6);for($i=0;$i<count($str);$i++){ for($j=count($str)-1;$j>$i;$j--){ if($str[$j]>$str[$j-1]){ $temp = $str[$j-1]; $str[$j-1] = $str[$j]; $str[$j] = $temp;原创 2012-06-21 19:06:01 · 457 阅读 · 0 评论 -
php 合并两个有序数组
对于两个有序数组,每个数组都是循环一次,即可有序的排列到新的数组里面;采取主意递增,比较,然后按顺序插入,php代码:<?php$arr1 = array(1,2,3,4,5,6,7,8);//示例数据$arr2 = array(3,4,5,7,9,10);echo '';print_r(mergeOrderly($arr1,$arr2));//示例function mergeO原创 2012-07-31 16:39:26 · 2389 阅读 · 0 评论