年轻人的努力

导航

2021年4月14日 #

merge sort

摘要: 稳定, 1.如果元素的个数为奇数 mid = len/2; i=0; j=mid+1; k=0; while(i<=mid && j<len){ if (a[i]<=a[j]) { tmp[k]=a[i]; i++; k++ } else { tmp[k] = a[j]; j++; k++; } } 阅读全文

posted @ 2021-04-14 15:17 年轻人的努力 阅读(40) 评论(0) 推荐(0) 编辑

2021年4月13日 #

递归

摘要: 在栈上分配栈帧,没调用一次分配一个,严格来讲,每个方法不一样,因为参数不一样 阅读全文

posted @ 2021-04-13 16:31 年轻人的努力 阅读(32) 评论(0) 推荐(0) 编辑

shell sort

摘要: 原理:先取一个间隔,然后间隔慢慢减少,最后到1为止 不稳定,空间为1,时间为 for(gap=4;gap>0;gap/= 2) { for(int i =gap;i<len;i++) { for(j=i;i>gap-1;j-=gap) { if (a[j]<a[j-gap]) swap(); } } 阅读全文

posted @ 2021-04-13 16:22 年轻人的努力 阅读(30) 评论(0) 推荐(0) 编辑

2021年4月12日 #

insert sort

摘要: 时间复杂度最好为O(n),最差为O(n2),空间复杂度为O(1),稳定 int n=0; for(int i=1;i<len;i++) { for(int j=i;j>0;j--) { if (a[j]<a[j-1]) swap(); n++; } if } 阅读全文

posted @ 2021-04-12 20:31 年轻人的努力 阅读(33) 评论(0) 推荐(0) 编辑

bubble sort

摘要: 时间复杂度最差为O(n2),最好为O(n),空间复杂度为O(1),属于稳定 n=0; for(int i = len-1;i>0;i--) { for(int j =0;j<i;j++) { if (a[j]>a[j+1]) { swap(); } } if (n==0) { break; } } 阅读全文

posted @ 2021-04-12 20:10 年轻人的努力 阅读(25) 评论(0) 推荐(0) 编辑

selecton sort

摘要: for (int i =0;i<len -1;i++) { minpos =i; for(int j=i+1;j<len;j++) { if (a[j]<a[minpos]) { swap(); } } } 阅读全文

posted @ 2021-04-12 20:07 年轻人的努力 阅读(37) 评论(0) 推荐(0) 编辑

2021年4月11日 #

条件编译和宏

摘要: 条件编译: http://c.biancheng.net/view/289.html 宏: http://c.biancheng.net/view/446.html 阅读全文

posted @ 2021-04-11 20:57 年轻人的努力 阅读(41) 评论(0) 推荐(0) 编辑

char* p ={'a','b','\0'}

摘要: 1,char a[]={'a','b','\0'} 2,char a[]="ab" 3,char *a="ab" 4,char *a ={'a','b','\0'} 1,2分配在栈上,3,4是在rodata区域 阅读全文

posted @ 2021-04-11 12:30 年轻人的努力 阅读(157) 评论(0) 推荐(0) 编辑

未决信号集和阻塞信号及

摘要: 未决信号及里面的信号是暂时未处理,处不处理取决于阻塞信号及里面该信号是否阻塞,如果阻塞,该信号暂不处理,等解除阻塞后,处理该信号, 这俩个集合都在pcb中,使用的是位操作,所以每一个信号的值只有俩种0和1 阅读全文

posted @ 2021-04-11 12:17 年轻人的努力 阅读(101) 评论(0) 推荐(0) 编辑

2021年4月10日 #

信号

摘要: 1.每种信号干什么,什么情况下产生都是事先预定好的,linux下提前定义了64种信号,特定条件下产生特定的信号,每种信号都有默认的执行动作 2.信号的原理: 类似于硬件中断,软中断,优先级高于其他操作,一个进程把信号发给内核,内核通过pid发给相应的进程,进程收到后执行相应的动作 3.信号的处理方式 阅读全文

posted @ 2021-04-10 18:19 年轻人的努力 阅读(44) 评论(0) 推荐(0) 编辑