每日一记--2014.9.13

今天贴三个小程序,程序很小,但是希望这些小东西都能记在心里

1.求多项式

 1 package 多项式;
 2
 3 public class Polynomial {
 4
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         int[] xishu = new int[]{2,1,0,8,4};
 8         System.out.println(poly(xishu,3));
 9
10     }
11     private static long poly(int[] xishu,int x){
12         long po = 0L;
13         for(int i = xishu.length-1;i>=0;i--){
14             po=po*x+xishu[i];//注意系数是从an开始递减到a1的
15         }
16         return po;
17     }
18
19 }

2.判断一个数是否为素数

 1 package 判断素数;
 2
 3 public class PrimeNumber {
 4
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         System.out.println(isPrime(71));
 8     }
 9
10     private static boolean isPrime(int a) {
11         if(a<2){
12             return false;
13         }
14         else{
15             for(int i=2;i<Math.sqrt(a);i++){
16                 if(a%i==0)
17                     return false;
18             }
19         }
20         return true;
21     }
22
23 }

3. 二分查找

时间复杂度为o(logN)

 1 package binarySearch;
 2 //折半查找必须针对已排序的数列
 3 public class BinarySearch {
 4
 5     static int NOT_FOUND = -1;
 6     public static void main(String[] args) {
 7         // TODO Auto-generated method stub
 8         int[] aa = new int[]{2,3,7,89,100,256,445,789};
 9         System.out.println(binarySearch(aa,100));
10     }
11     private static int binarySearch(int[] sortedArray ,int find){
12         int low =0;
13         int high = sortedArray.length-1;
14         while(low<=high){
15             int mid = (low+high)/2;
16             if(sortedArray[mid]<find){
17                 low=mid+1;
18             }
19             else if(sortedArray[mid]>find){
20                 high=mid-1;
21             }
22             else
23                 return mid;
24         }
25         return NOT_FOUND;
26     }
27
28 }
时间: 2024-11-05 05:00:45

每日一记--2014.9.13的相关文章

每日一记--2014.9.22

说好的每日一记呢, 哎,上周接到了老师的任务,要把项目中的后台数据处理代码读懂,于是就没有时间每天搞段小代码来写写了. 但是通过这一周,自己也学到了不少东西. 1. 首先是如何读别人写的代码: 先看 improt 大概用到什么类: 然后看main,有什么变量的初始化(有的写在一个init函数里了): 找到核心类,核心函数(调用了其他函数的函数),看其实现主要功能流程 . 最后再看其他那些被调用的函数,它们的具体实现细节. 2. 其次是如何给别人讲代码,做code review: 先讲其实现的功能

每日一记--2014.9.15

今天的程序还有待改进,写的可能比较冗长了,虽然逻辑不难,自己也是debug了一会儿. 问题是:找数值中的主元素,即个数超过半数的元素. 首先找出唯一的一个候选元素,然后再遍历数值统计其个数,看是否大于数组长度的二分之一,如大于则返回此主元素,若小于则表明没有主元素那么返回-1(假设数组中的数均为正整数). 如何寻找唯一的候选元素: 1.利用递归 2.为找出A中的候选元,先构造B.逐次比较A中的两个元素:比较A1和A2,若相等,则放入B:否则什么也不做.然后比较A3和A4,若相等,则放入B:否则什

每日一记--2014.9.12

今天是整数随机置换 还有记住:java中的基本数据类型是传递值的而不是传递引用的 1 package 随机置换; 2 import java.util.*; 3 4 //生成前N个整数的随机置换 5 //先顺序填满整个数组,然后挨个和前面的随机任取的位置交换 6 7 public class RandomExchange { 8 9 public static void main(String[] args) { 10 // TODO Auto-generated method stub 11

每日一记--2014.9.14

今天的小程序是厄拉多塞筛--寻找小于整数N的所有素数 厄拉多塞筛的基本思想是:从最小的素数2开始,首先把2圈出,然后将2的倍数去除.找出下一个未被圈出的数3,将3的倍数去除.找出下一个未被圈出的数35,将5的倍数去除,以此类推,直到N的平方根为止,就不需将其倍数去除了.最后剩余的被圈出的数就是要找的素数. 1 package 判断素数; 2 3 import java.util.ArrayList; 4 5 public class Shai { 6 public static void mai

每日一记--2014.10.11(2)

今天终于进展到了第三章,好好读了读链表 其实对于linkedlist来说,它的remove也会是O(N),因为对于删除这个动作确实是常数时间的,但是对于定位到被删除元素的位置就需要有线性时间的开销了 今天参照书上的把ArrayList类编了编,定名为MyArrayListM 1 package myarraylist; 2 3 import java.util.Iterator; 4 import java.util.NoSuchElementException; 5 6 public clas

每日一记:搭建Memcached + php 缓存系统

服务器环境,Centos6.5 1.安装Memcached服务端 Yum -y install memcached 2.配置Memcached服务端用户以及自动启动服务等 将服务配置成自启动 chkconfig --level 2345 memcached on 3.配置配置文件 vi /etc/sysconfig/memcached PORT=”11211″ 端口  USER=”root” 使用的用户名  MAXCONN=”1024″ 同时最大连接数 CACHESIZE=”64″ 使用的内存大

2014年13号,windows下共享文件

了解共享文件 应用到: Windows Storage Server 2008 R2 Essentials 通过 Windows Storage Server 2008 R2 Essentials,您可以将文件存储在始终可用.始终开启并且可靠的位置. 默认情况下,服务器上存在以下共享文件夹: 音乐 图片 文档 视频 录制的电视 使用快速启动板上的共享文件夹链接,可以在本地计算机和共享文件夹之间拖放文件,从而将文件上传或下载至任何列出的共享文件夹.通过使用共享文件夹,您可以在所有连接到服务器的计算

易轩网络更新页面————————2014.12.13发布

易轩网络更新页面: 最新更新动态: ★易轩★改软件标题工具—)—)豪华版              出炉! 工具大小:52.0 MB(若大于该大小则视为病毒文件处理) 工具功能:更改你想要更改软件的标题(则运行时的名称) 工具版本:v1.0.0.0 工具是否达标:是 工具是否报毒:暂未测试(若大小一致却依然报毒,请添加信任或关闭杀毒软件) 工具下载地址:http://yunpan.cn/cfxEAPKpPxzfg  提取码 ba30 工具作者:易轩 联系方式:邮箱:[email protecte

[2014.5.13][Ubuntu] Ubuntu 14.04STL 出现NTFS分区无法访问的问题

5.12 为了给学生改论文,在UPC上登录了Windows 8.1,晚上正常关机.今日切换登陆Ubuntu 14.04分区,发现原来可以正常访问的windows下的NTFS分区都被锁死,提示如下错误: Error mounting /dev/sda2 at /media/love/Mis Archiivos: Command-line `mount -t "ntfs" -o "uhelper=udisks2,nodev,nosuid,uid=1000,gid=1000,dma