免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 草上飞2008
打印 上一主题 下一主题

大赛评选结果已出,敬请关注!:PHP编程大赛隆重启动,PHP开发大挑战 [复制链接]

论坛徽章:
0
41 [报告]
发表于 2010-09-19 22:44 |只看该作者
30、MySQL数据库,一天一万条以上的增量,怎么优化?
function qsort(&$array $low $high) {
$i = $low;
$j = $high;
$x = $array[$low];
while ($i < $j) {

while($i < $j && $array[$j] >= $x) {
$j--;
}
$array[$i] = $array[$j];

while ($i < $j && $array[$i]

论坛徽章:
0
42 [报告]
发表于 2010-09-19 22:45 |只看该作者
31写个函数来解决多线程同时读写一个文件的问题。

function write_file($data $filename $type='a') {
$fp = @fopen($filename $type);
flock($fp LOCK_EX) ;
fwrite($fp $data);
flock($fp LOCK_UN);
fclose($fp);
} [/code]

论坛徽章:
0
43 [报告]
发表于 2010-09-19 22:46 |只看该作者
6:写一个function实现数组内每个元素之间加法的递代运算?
注:数组元素全部为自然数.

/**
* @date 2010/9/12
* @autor Tarfly
*/
$data=array(1,2,3,4);
$count = count($data);
for($i=0;$i<$count;$i++) {
for($j=$i;$j<count($data);$j++) {
$sum[$i][$j] = $data[$i] + $data[$j];
}
print_r($sum);
exit;

论坛徽章:
0
44 [报告]
发表于 2010-09-19 22:47 |只看该作者
2:用二分法在一个数组中查找你所需元素

就两分查找本身O(logn)是远小于O(sqrt(n))的,在此仅考虑折半查找算法本身

#define MAX 100
int n = 0;
int x[MAX];//seq data array {x[0]< ... x[max - 1]}

int binary(int t)
{
  int l, u;

  if(x[0] > t ||x[n] < t || n < 0){
  printf("input error \n");
  return -1;
  }

  l = 0;
  u = n;
  while (l <= m) {
  m = (l + u) / 2;
  if (x[m] < t) {
  l = m + 1;
  } else if (x[m] > t) {
  u = m - 1;
  } else { //find it
  return m;
  }
  }
  return -1;
}

int p[MAX]; //用于检验的数组顺序是打乱的

int main(void)
{
  int i = 0;

  printf("please input n(<%d)", MAX);
  scanf("%d", &n);
  for (i = 0; i < n;i++) {
    if (-1 == binary(p[i])) {
  printf("fail to find p[%d] = %d \n", i, p[%d]);
  }
  }
}

论坛徽章:
0
45 [报告]
发表于 2010-09-19 22:51 |只看该作者
2:用二分法在一个数组中查找你所需元素
A[n]B[m]其中m<n,B中的数据全部在A中,A为有序的。
x=0;
index=0;
astart=0;
aend=n;
for(x=0;x<m;x++)
{
  if(x!=0)
  {
  if(B[x-1]>B[x])
  {
  astart=0;
  aend=index;
  }else
  {
  astart=index;
  aend=n;
  }
  }
  B[x]在A中,二分查找.得出结果B在A的位置index;
}

论坛徽章:
59
2015七夕节徽章
日期:2015-08-24 11:17:25ChinaUnix专家徽章
日期:2015-07-20 09:19:30每周论坛发贴之星
日期:2015-07-20 09:19:42ChinaUnix元老
日期:2015-07-20 11:04:38荣誉版主
日期:2015-07-20 11:05:19巳蛇
日期:2015-07-20 11:05:26CU十二周年纪念徽章
日期:2015-07-20 11:05:27IT运维版块每日发帖之星
日期:2015-07-20 11:05:34操作系统版块每日发帖之星
日期:2015-07-20 11:05:36程序设计版块每日发帖之星
日期:2015-07-20 11:05:40数据库技术版块每日发帖之星
日期:2015-07-20 11:05:432015年辞旧岁徽章
日期:2015-07-20 11:05:44
46 [报告]
发表于 2010-09-19 22:53 |只看该作者
27、有一数组 $a=array(4,3,8,9,2);请将其重新排序(按从小到大的顺序列出)。
  1. <?php
  2.         $a=array(4,3,8,9,2);
  3.     for($i=0;$i<sizeof($a);$i++){
  4.             for ($j = $i + 1;$j<sizeof($a);$j++){
  5.                     if ($a[$i] > $a[$j]){
  6.                             $itemp = $a[$i];
  7.                             $a[$i]=$a[$j];
  8.                             $a[$j] = $itemp;
  9.                     }
  10.             }
  11.     }
  12.     print_r($a);
  13. ?>
复制代码
一路征程一路笑 该用户已被删除
47 [报告]
发表于 2010-09-20 00:06 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
48 [报告]
发表于 2010-09-20 08:42 |只看该作者
本帖最后由 shangat 于 2010-09-20 22:37 编辑

占个位,参与一下
11:公鸡3元每只,母鸡5元每只,小鸡1元3只,一百元钱买一百只鸡。请求出公鸡,母鸡和小鸡的数目。
==================================================
<?php
        /*
        由小鸡的价格得 小鸡的数目 必为 3 的倍数
        转为解决一个不定方程问题
        */
funcation nums ( $price_cock, $price_hen, $price_chick, $sum, $monkey ) {
        if (  $price_cock > $price_hen ) {
              $start = ( $monkey - $price_hen*$sum ) / ( $price_chick - $price_hen );
                 $end = ( $monkey - $price_cock*$sum ) / ( $price_chick - $price_cock );
        }
        else {
                 $start = ( $monkey - $price_cock*$sum ) / ( $price_chick - $price_cock );
               $end = ( $monkey - $price_hen*$sum ) / ( $price_chick - $price_hen );
        }
        for ( $start; $start < $end; $start++ ) {
                $ncock = ( ( $monkey - $price_hen*$sum ) - ($price_chick - $price_hen )*$start )/ ( $price_cock - $price_hen );
                $chen = ( ( $price_chick - $price_cock )*$start - ( $monkey - $price_cock*$sum ) )/( $price_cock - $price_hen );
                unless ( $ncock =~ /\./ || $nhen =~ /\./  ) {
                        if ( ( $sum - $ncock - $nhen ) % 3 == 0 ) {
                                echo "cock: $ncock hen: $sum-$start-$ncock chick: $start ";
                        }
                }
        }
}
num ( 3, 5, 1/3, 100, 100 );
?>
==================================================
12:小猴第一天摘下若干枣子,当即吃掉了一半,不过瘾又多吃了一个;第二天吃了剩下的一半又多吃了一个;以后每一天都吃了前一天剩下的一半多一个。到第十天小猴再想吃时,见到只剩下一只枣子了。问第一天这堆枣子有多少?
==================================================
<?php
/*
  假设枣子的数量 a 很大,则:
                         第 n 天所吃的数目为:  ( a + 2 ) / 2**k
                         第 n 天可以吃的数目为:( a + 2 ) / 2**k - 2,也就是第( n- 1 )天剩下的数目
*/
funcation first_all ( $days, $eatable ) {
        $index = 1;
        for ( $i=0; $i< $days-1; $i++ ) {
                $index *= 2;
        }
        echo "The first day there has: ",( $eatable + 2 )*$index -2;
}       
?>
==================================================
13:有一艘大船准备用来装载货物。所有待装货物都装在货箱中且所有货箱的大小都一样,但货箱的重量都各不相同。设第i 个货箱的重量为wi(1≤i≤n),而货船的最大载重量为c,如何在货船上装入最多的货物。
==================================================
<?php
        */
        变形为:一正数数组,元素互不相同,求元素之和不超过 C 的组合中元素之和最大的一组
        */
funcation load_max ( $array, $max_limited ) {
        $tags = 0;
        $result_array();
        for ( $i =0; $i < strlen($array); $i++ ) {    //strlen
                $tp = 0;
                $temp_array();
                for ( $j = $i; $j <  strlen($array); $j++ ) {
                        $tp += $array[$j];
                        if ( $tp <= $max_limited ) {
                                array_push($array,$array[$j]);            
                        }
                        else {
                                $tp -= $array[$j];
                        }
                }
                if ( $i == 0 ) {
                        $tags = $tp;
                        $result_array = $temp_array;
                }
                else if ( $tags <= $tp && count($result_array) <= count($temp_array)) {  
                        $tags = $tp;
                        $result_array = $temp_array;
                       echo "To load this cags:";
               print_r ($result_array);
               echo "( max load is: $tags )\n";
                }
}            
           
load_max ( $array, $max );
?>
==================================================
23、写出php的public、protected、private三种访问控制模式的区别
===========================================
对于PHP的属性和方法的访问权限,主要有public、protected、private这三个,
实现的办法就是在前面添加关键字public、protected、private 来实现的。
由public所定义的类成员可以在任何地方被访问;
由 protected 所定义的类成员则可以被其所在类的子类和父类访问(当然,该成员所在的类也可以访问);
而由 private 定义的类成员则只能被其所在类访问。
===========================================
24、 给你三个数,写程序求出其最大值。
=====================================
<?php
    function max_from_three($a,$b,$c){
         $max = ( $a >= $b ? ( $a >= $c ? $a : $c ) : ( $b >= $c ? $b : $c ) );
         return $max;
    }
    echo max_from_three(3,2,15);
?>
=====================================
25、写出查询发贴数最多的十个人名字的SQL,利用下表:
members(id,username,posts,pass,email)
==================================================
select username from members order by posts desc limit 10;
==================================================

论坛徽章:
0
49 [报告]
发表于 2010-09-20 08:45 |只看该作者
先占位 中秋宅起做题 我要CU的T恤 {:3_187:}

论坛徽章:
0
50 [报告]
发表于 2010-09-20 09:46 |只看该作者
回复 49# lenky0401


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP