用递归进行二分法查找,求大神看一下哪边错了,调试了就停止运行

#include
int binary_search_recursive(int arr[], int left, int right, int query);

int main ()
{
int arr[10];
int left, right, query;
int i , res_r;

printf ("请输入数据:");
for (i = 0; i <= 9; i++)
scanf ("%d" , &arr[i]);

printf ("输入区间:");
scanf ("%d%d" , &left , &right);

printf ("输入要查找的数据:");
scanf ("%d" , &query);

res_r = binary_search_recursive(arr , left , right , query);

printf ("%d\n" , res_r);
return 0;

}
int binary_search_recursive(int arr[], int left, int right, int query)
{
int low = left , high = right , mid;
int flag = 0;

mid = (low + high) / 2;
if (low > high)
    flag = -1;
if (query == arr[mid])
    flag = 1;
if (arr[mid] > query)
    binary_search_recursive(arr , low , mid - 1 , query);
else
    binary_search_recursive(arr , mid + 1 , high , query);


if (flag == 1)
return mid;
if (flag == -1)
return -1;

}

3个回答

low > high 应该直接返回了,你还在继续递归

递归出口设计得有问题

Debug_dodge
Debug_dodge 是的,底下那个flag=1的也改成返回。你这个无限递归了
2 年多之前 回复
qq_40833445
qq_40833445 那是直接把flag=-1改成return -1吗?
2 年多之前 回复

函数return根据flag倒是没什么问题,可是按你这个写法即便是low>high也会继续执行后面的查找算法,并且在arr[mid]不等于query时直接就没有返回值了,槽点有点多.稍微改了下函数,运行是没什么问题了,可是二分查找要求有序,你这里随便给个数组不用先检测是否有序吗.

int binary_search_recursive(int arr[], int left, int right, int query)
{

int low = left , high = right , mid;
mid = (low + high) / 2;
if (low > high)
    return -1;
if (query == arr[mid])
    return mid;
if (arr[mid] > query)
    return binary_search_recursive(arr , low , mid - 1 , query);
else
    return binary_search_recursive(arr , mid + 1 , high , query);

}

这种问题我建议你设置断点单步调试,并且设置个打印,很容易就能找出,对自己也是个很好的提升

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
python:用递归方法编写二分法查找函数 程序报错

在python上用递归方法编写二分法查找函数 程序如下: ``` def find_loc(x,arr): end = len(arr)-1 mid = end//2 if len(arr) < 1: x_loc = 0 print("None") elif len(arr) > 1: if x < arr[mid]: b = arr[:mid] x_loc = find_loc(x,b) elif x > arr[mid]: b = arr[mid:] x_loc = mid + find_loc(x,b) elif x == arr[mid]: x_loc = mid+1 return x_loc a=[1,2,3,4,5,6,7] print(find_loc(1,a)) ``` 报错如下: Traceback (most recent call last): File "binary_search2.py", line 19, in <module> print(find_loc(1,a)) File "binary_search2.py", line 10, in find_loc x_loc = find_loc(x,b) File "binary_search2.py", line 10, in find_loc x_loc = find_loc(x,b) File "binary_search2.py", line 16, in find_loc return x_loc UnboundLocalError: local variable 'x_loc' referenced before assignment 求助:为什么会出现local variable 'x_loc' referenced before assignment

递归问题,求各位大神解疑

### 递归问题,求各位大神解答 这个递归哪里出问题了,为什么程序没有结果? ___ ```c++ //根据 P/4=1-1/3+1/5-1/7.... 求P的近似值,要求精度为0.000001 #include"iostream" using namespace std; int Temp(int n){//求-1的n次方 if(n==0)return 1; return -1*Temp(n-1); } double PI(){ double sum=0; double temp=1.0; int count=0;//计数变量 while(temp>=1e-6){ count++; sum=sum+Temp(count-1)*temp; temp=1.0/(2*count+1); } return 4*sum; } int main(){ cout<<"------------求PI的值-------------"<<endl<<endl<<endl<<endl; cout<<"根据 P/4=1-1/3+1/5-1/7.... 求P的近似值,要求精度为0.000001"<<endl<<endl; double Pi=PI(); cout<<"PI="<<Pi; return 0; } ```

求c语言二分法求方程的根的具体算法

求c语言二分法求方程的根的具体算法===本人初学者,求大侠给出每步算法步骤,谢谢

C语言 递归,好像跳不出递归循环了,求大神帮忙看看

啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。 ```#include<stdio.h> int num_pi=0; int num_yin=1; int money = 823; int fun(int mon); int main() { fun(0); return 0; } int fun(int mon) { if(mon > money) return 0; if(mon == money && num_pi<num_yin){ printf("%d\n",num_pi); return 0; } num_pi++; fun(mon+23); num_yin++; fun(mon+19); } ```

递归求字符串长度问题,求大神解答

int length(char * str) { if (*str == '\0') { return 0; } else { return (1+length(++str)); } } char str[10]="abcde"; 这个递归最后返回来的为什么会是5 不是应该返回0吗 求大神解惑

求二分查找的递归和非递归的时间空间效率比较

求二分查找的递归和非递归的时间空间效率比较,为什么在刘汝佳的书上说,一般用非递归方法

关于斐波那契矩阵,用递归二分法。哪位大神帮忙看看哪里出问题了?

#include <iostream> #include <cstdio> #include <cstring> #define MAX 100 using namespace std; typedef struct fibo { int i1j1; int i1j2; int i2j1; int i2j2; }fibo; fibo a[MAX]; fibo FIBO(int num); fibo MUL(fibo x,fibo y) {//x、y,2个矩阵相乘, fibo w; w.i1j1=x.i1j1*y.i1j1+x.i1j2*y.i2j1; w.i1j2=x.i1j1*y.i1j2+x.i1j2*y.i2j2; w.i2j1=x.i2j1*y.i1j1+x.i2j2*y.i2j1; w.i2j2=x.i2j1*y.i1j2+x.i2j2*y.i2j2; return w; } fibo FIBOMUL(fibo x,fibo y,fibo z,int num) { fibo r; if(num<=2) return((MUL(MUL(x,y),z))); else return(MUL(FIBO(num),FIBO(num)),z); } fibo FIBO(int num) { a[0].i1j1=a[0].i2j2=1; a[0].i1j2=a[0].i2j1=0; a[1].i1j1=a[1].i1j2=a[1].i2j1=1; a[1].i2j2=0; a[2].i1j1=2; a[2].i1j2=a[2].i2j1=a[2].i2j2=1; fibo result=a[0]; if(num==1) return a[1]; else if(num==2) return a[2]; else{ if(num%2==1) result=FIBOMUL(a[num/2],a[num/2],a[1],num/2); else result=FIBOMUL(a[num/2],a[num/2],a[0],num/2); } return result; } void main() { fibo x; x=FIBO(8); cout<<x.i1j1<<x.i1j2<<x.i2j1<<x.i2j2; getchar(); getchar(); }

C#不依赖系统库函数用递归实现一个二分查找的算法,越简单越好,谢谢啦

C#不依赖系统库函数用递归实现一个二分查找的算法,越简单越好,谢谢啦

JS递归查找对象数组的某个值?

**代码如下** 任意给一个对对象或者数组,通过遍历,递归查找其中是否存在某个值, 代码我已经写的差不多了,但是只支持单次查找。 因为flag重置问题没法解决。 如果在函数体最后if里面,flag= false,则涉及到对象中的数组的时候就不起作用了。因为if(flag)虽然执行了 但是**并没有跳出递归。** 所以我的问题就是怎么正确重置flag~ 希望有朋友能够解惑~_** ``` <script type="text/javascript"> var flag = false; function exitindata(data,item){ if(data instanceof Array){ var i = data.length; while(i--){ if(flag){ break; } if(data[i] === item){ flag = true; break }else{ if(data[i] instanceof Array || data[i] instanceof Object){ exitindata(data[i],item); } } } }else{ for(var key in data){ if(flag){ break } if(data.hasOwnProperty(key) === true){ if(data[key] === item){ flag = true; break }else{ if(data[key] instanceof Array || data[key] instanceof Object){ exitindata(data[key],item); } } } } } if(flag){ return true; }else{ return null } } function find(item){ var data = [9, { item1:50, item2:94, item3:[ { cc: 9999, ff:9090 } ] } ,65,1111,54,11,0,1,3,7,8,5,649,841]; console.log(exitindata(data,item)); } find(9090) find(9091) find(9999) </script> ``` 单次查找没问题。 多次就出问题啦

帮我看下下面的递归,跪求大神帮我详细解答一下。

//数列1,1,2,3,5,8,13,21,34... ...求第n项 class FuncDemo11 { public static void main(String[] args) { System.out.println(getNData(8)); } public static int getNData(int n) { if(n==1||n==2) return 1; return getNData(n-1)+getNData(n-2); } } 这个递归程序的第8项不应该是21吗?? 这个程序返回的具体步骤是怎样的? 求大神帮我解答一下,谢谢!!

求助!!!C语言怎么用二分法求一元三次方程的根。

C语言怎么用二分法求一元三次方程的根。啊 能不能把程序打出来一下谢了!!!

C语言怎么用递归求组合数

求大神指导啊,递归基本思想了解,但是不知道怎么去表达,要求用公式C(n,r)=C(n,r-1)*(n-r+1)/r

求代码谢谢各位大神,怎样用递归求阶乘,?

编写递归方法计算算式3^0+3^1+3^2+3^3+…+3^n 的值。

java 递归报错 求大神帮忙

``` private List<Post> getPostLower(List<Post> PostTops){ List<Post> postAll=new ArrayList<Post>(); // 上级 for(Post post:PostTops){ //查询到下级 List<Post> posts=basService.queryPostByParentId(post.getPostId()); //如果有下级 重新调用 if(posts!=null && posts.size()>0){ posts=getPostLower(posts); post.setPosts(posts); } postAll.add(post); } return postAll; } ``` 做了个查询树形递归 但是递归次数太多报错了。。。除了修改内存有什么方法避免这个错误吗

数据结构,查找,递归的问题

照样是一个比较细枝末节的问题,上图! ![图片说明](https://img-ask.csdn.net/upload/201605/29/1464525339_25687.png) 参数表的情况是这样的:Table T是一个数组,KeyType K是想要查找的数字,int low是数组的区间最小值,int high就是数组区间的最大值。 <br/> 这是折半查找法,用了递归 <br/> 这一段代码的问题就是如果想查找后半部分的数字,会陷进递归里面跳不出来,具体的问题因为在下能力不足,描述不出来呀~真的很抱歉。拜托大神稍稍花些精力看吧~十分感谢十分感谢十分感谢。 <br/> 如果光看这一段代码看不明白,以下是全部代码 ``` #include<iostream> #define MAXNUM 30 using namespace std; typedef int KeyType; typedef int InfoType; //构建元素类型 typedef struct { KeyType key; InfoType i; }ElemType; //构建顺序表类型 typedef struct { ElemType *R; int length; }Table; //折半查找法 int BinarySearch(Table T, KeyType K, int low, int high) { int mid; while (low <= high) { mid = (low + high) / 2; if (K == T.R[mid].key) return mid; else if (K < T.R[mid].key) BinarySearch(T, K, low, mid - 1); else BinarySearch(T, K, mid + 1, high); } return 0; } void main() { Table T; //构建顺序表T T.R = new ElemType[MAXNUM]; //为顺序表构建空间 KeyType K; cout << "输入即将输入的元素数量(大于8个)" << endl; cin >> T.length; while (T.length <= 8) { cout << "小于8个,请重新输入" << endl; cin >> T.length; } cout << "请有序输入元素" << endl; for (int i = 1; i <= T.length; i++) cin >> T.R[i].key; cout << "希望查找的元素为" << endl; cin >> K; int low = 1; int high = T.length; int result; result = BinarySearch(T, K, low, high); //调用函数 if (result == 0) cout << "希望查找的元素不在此数组内" << endl; else cout << "该元素的下标为:" << result << endl; system("pause"); } ```

二叉树递归遍历查找问题

如题,利用递归在二叉树中查找一个值,若二叉树中存在该值则输出1,否则输出0.我想用遍历进行查找,但是却无法进行,代码如下: #include <iostream> #include <stack> #include <cstring> #include <iomanip> using namespace std; class Tree_Node { public: char data; //数据 Tree_Node *left; Tree_Node *right; Tree_Node(char da) { left = right = NULL; data = da; } }; //删除二叉树 内联函数 减少时间花销 inline void free_Tree(Tree_Node *p) { if(p -> left != NULL) { free_Tree(p -> left); } if(p -> right != NULL){ free_Tree(p -> right); } delete(p); } void post_order(Tree_Node *p) { if(p) { post_order(p -> left); post_order(p -> right); cout << p -> data; } } bool search(Tree_Node *p, char k) { if(p -> data == k) { return true; } if(p) { search(p -> left, k); search(p -> right, k); } } void build_Tree(Tree_Node *&p, string a) { char ch; int index = 0; stack <Tree_Node*> s; // stack <char> s2; ch = a[index++]; while(ch != '\0'){ p = new Tree_Node(ch); if(s.size() > 0) { p -> left = s.top(); s.pop(); } s.push(p); ch = a[index++]; if(ch == '\0') { break; } if(ch != '\0' && s.top() -> left == NULL) { p = s.top(); s.pop(); p -> left = new Tree_Node(ch); ch = a[index++]; s.push(p); } if(ch == '\0') { break; } if(ch != '\0') { p = s.top(); s.pop(); p -> right = new Tree_Node(ch); s.push(p); ch = a[index++]; s.push(p); } if(ch == '\0') { break; } } p = s.top(); s.pop(); } int main() { string s; char c; Tree_Node *tree; cin >> s >> c; build_Tree(tree, s); post_order(tree); cout << endl; if(search(tree, c)) { cout << 1 << endl; } else { cout << 0 << endl; } cout << 1 << endl; free_Tree(tree); return 0; } 还有一个问题是不知道失败的判定条件,请大神帮帮忙修改一下代码

sqlserver 用CTE 递归 排序问题 求大神指教啊

create table t_manage (f_gener int,f_accounts varchar(100) null, f_firstGener varchar(100) null, f_secondGener varchar(100) null, f_thirdGener varchar(100) null, f_joindate datetime null ) select * from dbo.t_manage insert into dbo.t_manage values('1','BV51','F51','D51',null,'2013-11-08 12:02:29.477') insert into dbo.t_manage values('1','CY51','F51','D51',null,'2014-05-03 13:48:05.240') insert into dbo.t_manage values('1','CY52','F51','D51',null,'2014-07-08 11:44:37.927') insert into dbo.t_manage values('1','BV58','F51','D51',null,'2014-09-25 14:26:16.397') insert into dbo.t_manage values('1','BV519','F51','D51',null,'2014-09-28 11:54:05.190') insert into dbo.t_manage values('1','BV520','F51','D51',null,'2014-09-28 12:01:40.753') insert into dbo.t_manage values('1','D518','F51','D51',null,'2014-09-28 12:04:37.537') insert into dbo.t_manage values('1','CY518','F51','D51',null,'2014-09-28 15:22:20.727') insert into dbo.t_manage values('1','BU5103','F51','D51',null,'2014-09-28 16:52:37.243') insert into dbo.t_manage values('2','BU5101','CY51','F51','D51','2013-11-08 12:02:29.477') insert into dbo.t_manage values('2','BU591','CY51','F51','D51','2014-05-03 13:48:05.240') insert into dbo.t_manage values('2','CY58','CY52','F51','D51','2014-07-08 11:44:37.927') insert into dbo.t_manage values('2','BV57','CY52','F51','D51','2014-09-25 14:26:16.397') insert into dbo.t_manage values('2','BV59','BV58','F51','D51','2014-09-28 11:54:05.190') insert into dbo.t_manage values('2','BV510','CY52','F51','D51','2014-09-28 12:01:40.753') insert into dbo.t_manage values('2','CY59','CY52','F51','D51','2014-09-28 12:04:37.537') insert into dbo.t_manage values('2','D512','CY52','F51','D51','2014-09-28 15:22:20.727') insert into dbo.t_manage values('2','F510','CY52','F51','D51','2014-09-28 16:52:37.243') insert into dbo.t_manage values('2','CY510','CY52','F51','D51','2014-09-25 14:26:16.397') insert into dbo.t_manage values('2','D513','CY52','F51','D51','2014-09-28 11:54:05.190') insert into dbo.t_manage values('2','BV512','BV51','F51','D51','2014-09-28 12:01:40.753') insert into dbo.t_manage values('2','F511','CY52','F51','D51','2014-09-28 12:04:37.537') insert into dbo.t_manage values('2','BV521','BV51','F51','D51','2014-09-28 15:22:20.727') insert into dbo.t_manage values('2','CY515','BV51','F51','D51','2014-09-28 16:52:37.243') insert into dbo.t_manage values('3','D511','BV59','CY52','F51','2014-09-25 14:55:08.010') insert into dbo.t_manage values('3','Z58','CY58','CY52','F51','2014-09-25 15:33:19.227') insert into dbo.t_manage values('3','BU597','BV510','CY52','F51','2014-09-25 17:49:45.923') insert into dbo.t_manage values('3','BV511','F510','CY52','F51','2014-09-26 14:28:34.310') insert into dbo.t_manage values('3','Z510','BV510','CY52','F51','2014-09-27 11:47:40.927') 这是一张表 以及表中内容 f_gener=1表示第一代 f_gener=2表示第二代 f_gener=3表示第三代 f_joindate表示加入日期 现在要求:以第一代为主排序,再以第二代细分第三代,第一代排序越晚加入帐号排在越前面,第二代,第三代再按照先后顺序排序 排序需求: 以第一代帐号排序 越晚加入帐号排在越前面,第二代和第三代再按照加入先后顺序依序排列。 现在写的sql可以做到各代层级正确,第一代帐号也能满足越晚加入越前面。但是第二代和第三代就没办法做到了 求指教啊 WITH personreleation AS ( select * from ( SELECT row_number() over(order by f_joindate desc) xh,a.f_accounts,a.f_firstGener,a.f_secondGener,a.f_thirdGener,a.f_joindate, cast(f_firstGener+'\'+ f_accounts AS VARCHAR(200)) AS Full_Code,cast(1 as int) as f_gener FROM t_manage a with(nolock) WHERE f_firstGener = 'F51') as m UNION all SELECT c.xh,b.f_accounts,b.f_firstGener,b.f_secondGener,b.f_thirdGener,b.f_joindate, cast(c.Full_Code +'\'+ b.f_accounts AS VARCHAR(200)) AS Full_Code,cast(c.f_gener+1 as int) as f_gener FROM t_manage AS b with(nolock) INNER join personreleation AS c ON b.f_firstGener= c.f_accounts ) ,results as ( SELECT ROW_NUMBER() OVER(ORDER BY xh,Full_Code,f_joindate desc) rownumber, * FROM personreleation with(nolock) where 1=1 ) select * from results where rownumber BETWEEN 1 AND 50

求大神指导调用递归函数中的栈是怎么运行的

回溯法与树的遍历 回溯法:其求解过程实质是一个先序遍历一棵“状态树”的过程,只是这棵树不是遍历前预先建立的,而 是隐含在遍历过程中。 题目描述:求含n个元素的集合的幂集。 例:A={1,2,3},则A的幂集为{{1,2,3},{1,2},{1, 3},{2,3},{1},{2},{3},{}} 解题思路:求幂集的过程可看成是依次对集合A中的元素进行取或舍的过程。 1. 选择合适的数据结构——假设以线性表表示集合。 2. 树根结点表示幂集元素的初始状态(空集),叶子结点表示终结状态(幂集的元素),第i层表 示已对前i-1个元素进行了取舍的当前状态 编码: #include "stdafx.h" #include< iostream.h> #define N 10 typedef struct { int data[N]; int length; }SqList; //输出线性表B void Output(SqList& B) { int i; if(B.length ==0) cout<<"空集\n"; else { for(i=0;i<B.length ;i++) cout<<B.data [i]<<"\t"; cout<<endl; } } //求集合A的幂集,其中B为暂存幂集元素的线性表,i表示从第i个元素开始取舍,当 //i>n时则求得幂集的一个元素,并输出 void GetPowerSet(int i,SqList A,SqList& B) { int x,k,j; if(i>=A.length ) Output(B); else { x=A.data [i]; k=B.length ; B.data [k]=x; B.length ++; GetPowerSet(i+1,A,B); B.length --; GetPowerSet(i+1,A,B); } } A={1,2,3},则A的幂集为{{1,2,3},{1,2},{1, 3},{2,3},{1},{2},{3},{}} int main(int argc, char* argv[]) { SqList A,B; int i; cout<<"输入A集合的元素个数\n"; cin>>A.length ; cout<<"输入A集合的元素\n"; for(i=0;i<A.length ;i++) cin>>A.data [i]; B.length =0; GetPowerSet(0,A,B); return 0; } 我不解的是第一次执行完output函数后该怎么办,如果继续执行下面的语句,即b.length--和递归函数,那第二次输出的集合显然与答案不符,求大神指点,我记得老师说过还有什么出栈的过程,求指导

递归问题求各位大神解答

###代码如下,请问这个递归哪里出问题了,问什么程序没有结果 <pre> //根据 P/4=1-1/3+1/5-1/7.... 求P的近似值,要求精度为0.000001 #include"iostream" using namespace std; int Temp(int n){//求-1的n次方 if(n==0)return 1; return -1*Temp(n-1); } double PI(){ double sum=0; double temp=1.0; int count=0;//计数变量 while(temp>=1e-6){ count++; sum=sum+Temp(count-1)*temp; temp=1.0/(2*count+1); } return 4*sum; } int main(){ cout<<"------------求PI的值-------------"<<endl<<endl<<endl<<endl; cout<<"根据 P/4=1-1/3+1/5-1/7.... 求P的近似值,要求精度为0.000001"<<endl<<endl; double Pi=PI(); cout<<"PI="<<Pi; return 0; } </pre>

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

点沙成金:英特尔芯片制造全过程揭密

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内,我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年,古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合,再掺入煅烧石灰石制成的石灰,由此得来了人...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

C++11:一些微小的变化(新的数据类型、template表达式内的空格、nullptr、std::nullptr_t)

本文介绍一些C++的两个新特性,它们虽然微小,但对你的编程十分重要 一、Template表达式内的空格 C++11标准之前建议在“在两个template表达式的闭符之间放一个空格”的要求已经过时了 例如: vector&lt;list&lt;int&gt; &gt;; //C++11之前 vector&lt;list&lt;int&gt;&gt;; //C++11 二、nullptr ...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

深入剖析Springboot启动原理的底层源码,再也不怕面试官问了!

大家现在应该都对Springboot很熟悉,但是你对他的启动原理了解吗?

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

【阿里P6面经】二本,curd两年,疯狂复习,拿下阿里offer

二本的读者,在老东家不断学习,最后逆袭

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

《Oracle Java SE编程自学与面试指南》最佳学习路线图(2020最新版)

正确选择比瞎努力更重要!

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

微软为一人收购一公司?破解索尼程序、写黑客小说,看他彪悍的程序人生!...

作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)格子衬衫、常掉发、双肩包、修电脑、加班多……这些似乎成了大众给程序员的固定标签。近几年流行的“跨界风”开始刷新人们对程序员的...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

我说我懂多线程,面试官立马给我发了offer

不小心拿了几个offer,有点烦

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

立即提问
相关内容推荐