面试中经常出现的算法1(整理)
来源:互联网 发布:淘宝客定向计划取名 编辑:程序博客网 时间:2024/05/22 17:24
//二分查找的代码.int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] > val) { r = m; m = (m+l)/2; } else if(a[m] < val) { l = m; m = (m+r)/2; } else return m; } return -1; //没有找到}
//写出在母串中查找子串出现次数的代码.int count1(char* str,char* s){ char* s1; char* s2; int count = 0; while(*str!='\0') { s1 = str; s2 = s; while(*s2 == *s1&&(*s2!='\0')&&(*s1!='0')) { s2++; s1++; } if(*s2 == '\0') count++; str++; } return count;}
//查找第一个匹配子串位置,如果返回的是s1长度len1表示没有找到int find(char* s1,char* s2)//s2子串{ int i=0,j; int len1 = strlen(s1); int len2 = strlen(s2); if(len1-len2<0) return len1; for(;i<len1;i++) { int m = i; for(j=0;j<len2;j++) { if(s1[m]!=s2[j]) break; m++; } if(j==len2) break; } return i;}
//写出快速排序或者某种排序算法代码//快速排序:void qsort(int *a, int left, int right){ if(left >= right)/*如果左边索引大于或者等于右边的索引就代表已经整理完成一个组了*/ { return ; } int i = left; int j = right; int key = a[left]; while(i < j)/*控制在当组内寻找一遍*/ { while(i < j && key <= a[j]) { j--;/*向前寻找*/ } a[i] = a[j]; while(i < j && key >= a[i]) { i++; } a[j] = a[i]; } a[i] = key;/*当在当组内找完一遍以后就把中间数key回归*/ qsort(a, left, i - 1); qsort(a, i + 1, right);}//冒泡排序:void buble(int *a,int n){ for(int i=0;i<n-1;i++) { for(int j=1;j<n-i;j++) { if(a[j]>a[j-1]) { int temp=a[j]; a[j] = a[j-1]; a[j-1] = temp; } } }}//插入排序:void insertsort(int* a,int n){ int key,i,j; for(j=1;j<n;j++) { key = a[j]; for(i=j;i>=0&&a[i]>key;i--) { a[i] = a[i-1]; } a[i] = key; }}
0 0
- 面试中经常出现的算法1(整理)
- 面试中经常出现的算法2(整理)
- 面试中经常出现的算法
- 面试中经常出现的算法
- 面试中经常出现的算法
- 前端中经常出现的算法总结
- 前端中经常出现的算法总结
- 【面试考试中经常出现的集合类型总结】
- 算法面试经常出现的问题——扑克牌中顺子和同花哪一个概率大?
- java面试中经常会被问到的一些算法的问题
- java面试中经常会被问到的一些算法的问题
- Java面试中经常问到的算法题
- Java面试中经常问到的算法题
- 面试中经常碰到的C语言算法
- git使用中经常出现的错误(1)
- 前端中经常出现的javaScript算法总结
- Java面试中经常问到的算法题 - - JavaEye技术网站 (转载)
- 关于面试中经常出现的根据一个随机数构造另外的随机数的解法
- 注册mysql为系统服务and命令行启动
- POJ - 3984 - 迷宫问题
- Qt 多线程之MoveToThread()
- linux随笔-3
- PHP学习总结(一)
- 面试中经常出现的算法1(整理)
- SQLite多线程使用总结
- grails+oracle 一次实际操作记录
- UIScreen获取两种类型画面尺寸
- Java实现文件拷贝的4种方法
- OpenBLAS,Numpy,Scipy For Linux
- linux 进程间通信之 消息队列
- Visual studio 2015 community + Windows Driver Kit 10 +Vmware 11 配置驱动开发环境
- cookie对象及其应用: