2013年4月5日

面试基础60题笑死牛刀

摘要: 1.有一个整数数组,请求出两两之差绝对值最小的值, 1)若采用暴力则n^2 2)qsort 则nlgn 3)鸽笼原理 分成桶 n2.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?) atoi3.给出一个函数来输出一个字符串的所有排列。 采用排列数的方法 #include <stdio.h>void swap(char*str,int i,int k){ char temp=str[i]; str[i]=str[k]; str[k]=temp;}void PaiLie(char*str,int k,int ... 阅读全文

posted @ 2013-04-05 23:06 AAAAAApple 阅读(328) 评论(0) 推荐(0) 编辑

基础算法之搜索算法

摘要: 深度搜索和广度搜索是我们搜索算法中常用的一种思想4-1 油田合并问题 问题描述 : 大致思想:给一幅油田地图,算出油田中可以至少需要几个泵,相连的油田中的油可以相互流动 输入地图 m*n (<=50) 然后给出数据 输出泵的个数源代码:#include<stdio.h>#define N 50char Map[N][N];int Flag[N][N]; int m,n;void dfs(int i,int j){ //四个方向搜索 //判断边界if(i<0||i>=m||j<0||j>=n)return ;Flag[i][j]=1;//遍历了if(Fl 阅读全文

posted @ 2013-04-05 15:43 AAAAAApple 阅读(354) 评论(0) 推荐(0) 编辑

基础算法之排序查找算法

摘要: 排序是计算机中重要的操作之一,接下来列举一下所有学到过的排序和查找,并将他们比较一下 排序包括稳定的排序和不稳定的排序插入排序、冒泡排序、二叉树排序、二路归并排序及其他线形排序是稳定的选择排序、希尔排序、快速排序、堆排序是不稳定的这里还有一些关于排序的东西稍后会补上常用的算法比如qsort函数3-1 对一维数组进行排序int comp(const void *a,const void *b){return *(int *)a-*(int *)b; //从小到大进行排序 return *(int *)b-*(int *)a; 为由大到小排序。}qsort(a,1000,sizeof(int).. 阅读全文

posted @ 2013-04-05 15:20 AAAAAApple 阅读(202) 评论(0) 推荐(0) 编辑

基础算法之枚举

摘要: 例2-1 题目描述 : 小明家里有很多长度不是一样的木棍,有一天他很无聊,便玩弄这些木棒来解闷,他想在这些木棒中挑出三根来组成一个直角三角形,当然他有很多种选法,所以他想挑一个面积最大的, 输入: n(0-100) n组数据(<=1000) 输出: 最大面积保留三位小数 不能组成则输出MyGod源代码: #include <stdio.h>#define N 101int len[N];double GetMaxArea(int n){ int i,j,k; double ans=-1; for(i=0;i<n;i++) for(j=i+1;j<n;j++) fo 阅读全文

posted @ 2013-04-05 14:47 AAAAAApple 阅读(212) 评论(0) 推荐(0) 编辑

基础算法之分治算法

摘要: 分治算法的基本思想的是将一个规模为N的问题分解为K个规模较小的问题,这些子问题是相互独立且与原问题性质相同的例1-1计数问题 给定2个数a,b计算出1在a和b之间出现的次数算法思想: 计算出1在0-a和0-b之间出现的次数,然后相减例如在计算0-197之间的数 1.首先计算190-197之间个位数上出现1的次数2.然后计算180-189上的1出现的个数3然后递归 到18求解 权值*10源代码如下: #include<stdio.h>#define N 10int count[N];int value=1;void Deal(int k){ if(k<=0)return; in 阅读全文

posted @ 2013-04-05 14:34 AAAAAApple 阅读(235) 评论(0) 推荐(0) 编辑

导航