java常用算法整理
做移动端的同学们经常会忽略算法使用,因为平时开发后台数据已经处理好了,前端更多的是动画逻辑,布局逻辑等,但是算法重要性毋庸置疑,好的运用算法可以增加程序效率和提升代码质量,这里整理一下常见的面试中遇到的算法:
//二分法查找public static int search(int[] arr, int key){int start=0;int end=arr.length-1;while (start<=end){int mid = (end+start)/2;if (key<arr[mid]){end=mid-1;}else if (key>arr[mid]){start=mid+1;}else {return mid;}}return -1;}//交换public static void swap(int[] arr, int i, int j){//普通
// int tmp=arr[i];
// arr[i]=arr[j];
// arr[j]=tmp;//位运算arr[i]^=arr[j];arr[j]^=arr[i];arr[i]^=arr[j];}//插入排序 升序public static void insertSort(int[] a) {int i, j, insertNote;// 要插入的数据for (i = 1; i < a.length; i++) {// 从数组的第二个元素开始循环将数组中的元素插入insertNote = a[i];// 设置数组中的第2个元素为第一次循环要插入的数据j = i - 1;while (j >= 0 && insertNote < a[j]) {a[j + 1] = a[j];// 如果要插入的元素小于第j个元素,就将第j个元素向后移动j--;}a[j + 1] = insertNote;// 直到要插入的元素不小于第j个元素,将insertNote插入到数组中}}//冒泡排序 升序public static void select(int[] arr){for (int i=0; i<arr.length-1; i++){for (int j=0; j<arr.length-1-i;j++){if (arr[j]>arr[j+1]){int tmp=arr[j];arr[j]=arr[j+1];arr[j+1]=tmp;}}}}// 选择排序升序public static void selectSort(int[] arr){for (int i = 0; i < arr.length; i++) {int tmp = arr[i];int index=i;for (int j = i+1; j < arr.length; j++) {if (arr[j]<tmp) {tmp=arr[j];index=j;}}if (index!=i) {//交换arr[i]=arr[index]; arr[index]=tmp;}}}//去重public static void searchRepeatIndex(int[] arr){for (int i = 0; i < arr.length-1; i++) {for (int j = i+1; j < arr.length; j++) {if (arr[i]==arr[j]) {System.out.println("重复元素下标:"+i);break;//去掉这句可以查找重复次数}}}}
java常用算法整理相关推荐
- java常用算法之冒泡排序简单例子
为了更好的理解冒泡排序过程,下面举一个实例. 初始数组 118 101 105 127 112 一次排序 101 118 105 112 127 二次排序 101 105 118 112 127 三次 ...
- 密码算法的概念及常用算法整理
最近实在太忙,很早就整理好的东西,但是一直抽不出时间发,今天准备连续发三篇最近对密码这块内容的整理,我也是密码学的初学者,解释不到的地方欢迎指点,谢谢!接下来开始学习密码算法吧! 1.密码算法概念介绍 ...
- 计算机视觉常用算法整理
图像预处理算法: 1.图像梯度算法Sobel.Scharr 2.角点检测算法Harris 3.边缘检测算法Canny 4.z直线检测算法Hough 图像特征处理算法: 1.SIFT(尺度不变特征变换) ...
- java 常用算法_Java常见算法整理
兔子问题(斐波那契数列规律) 台阶问题 (兔子问题变种,递归规律) 素数问题(判断素数.质数方式) 水仙花数问题(数字分解) 查找算法(二分查找) 排序算法(选择排序,冒泡排序,快速排序) 兔子问题, ...
- 深入理解Javascript--字符串类型常用算法整理(五)
目录 一.算法在常用场景思考 1.1 算法和前后端的关联思考 1.2 前端所涉及到的算法范围侧重点思考 1.3 编程语言及框架的边界和衍变思考 1.4 足以改变世界的力量 二.字符串类型常见场景及解 ...
- java常用算法_JAVA编程常用算法——冒泡排序
一.冒泡排序算法运作的过程 (1)比较相邻的元素.如果第一个比第二个大,就交换他们两个. (2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. (3 ...
- java常用算法分析和实现 amp,Java常用算法实现
0.总结 常见算法复杂度.jpg O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n),logn的 ...
- Java常用算法三:01背包问题
文章目录 一.动态规划 1.简介 2.应用场景:背包问题 二.01背包问题 1.1 分析过程 1.2 java实现01背包问题求解 笔记来源: 尚硅谷 一.动态规划 1.简介 动态规划(Dynamic ...
- java常用算法_五分钟记住Java常用的八种排序算法与代码实现
1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数--直 ...
- Java常用算法二:分治法
文章目录 一.分治算法的基本步骤 二.分治算法解决汉诺塔问题 2.1 汉诺塔的规则: 2.2 使用分治算法 笔记参考:尚硅谷 分治法就是把很复杂的问题分而治之,把一个很大的问题分成几个很小的问题,再把 ...
最新文章
- 学习 Linux,101: 引导系统
- MFC CTreeCtrl运用
- Spring Boot-切换嵌入式Servlet容器
- linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例
- 在CodeBlocks上配置OpenGL问题
- python多进程和多线程一起使用_Python3多进程与多线程区别及使用(2.线程)
- Selenium WebDriver的TestNG注释完整指南
- 检索召回 技术综述!
- 为什么佛系青蛙住进了阿里淘宝——访《旅行青蛙》制作人
- MongoDB数据访问[C#]
- 【AdaBoost算法】积分图代码实现
- Query DSL(2)----Full text queries
- 查询2021年怀铁一中高考成绩,怀铁一中2010高考录取名单
- 机器学习领域著名的期刊与会议
- AP(affinity propagation)聚类算法
- matlab 逆滤波,【CV】图像去模糊(逆滤波)
- 爬取20万数据,我们深扒了风口上的「享物说」
- Axure RP9 制作下拉式菜单
- Oracle10g卡顿,192MB内存运行win10 系统启动大约3分钟响应非常慢
- 通过银行卡号识别银行