做移动端的同学们经常会忽略算法使用,因为平时开发后台数据已经处理好了,前端更多的是动画逻辑,布局逻辑等,但是算法重要性毋庸置疑,好的运用算法可以增加程序效率和提升代码质量,这里整理一下常见的面试中遇到的算法:

    //二分法查找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常用算法整理相关推荐

  1. java常用算法之冒泡排序简单例子

    为了更好的理解冒泡排序过程,下面举一个实例. 初始数组 118 101 105 127 112 一次排序 101 118 105 112 127 二次排序 101 105 118 112 127 三次 ...

  2. 密码算法的概念及常用算法整理

    最近实在太忙,很早就整理好的东西,但是一直抽不出时间发,今天准备连续发三篇最近对密码这块内容的整理,我也是密码学的初学者,解释不到的地方欢迎指点,谢谢!接下来开始学习密码算法吧! 1.密码算法概念介绍 ...

  3. 计算机视觉常用算法整理

    图像预处理算法: 1.图像梯度算法Sobel.Scharr 2.角点检测算法Harris 3.边缘检测算法Canny 4.z直线检测算法Hough 图像特征处理算法: 1.SIFT(尺度不变特征变换) ...

  4. java 常用算法_Java常见算法整理

    兔子问题(斐波那契数列规律) 台阶问题 (兔子问题变种,递归规律) 素数问题(判断素数.质数方式) 水仙花数问题(数字分解) 查找算法(二分查找) 排序算法(选择排序,冒泡排序,快速排序) 兔子问题, ...

  5. 深入理解Javascript--字符串类型常用算法整理(五)

    目录 一.算法在常用场景思考 1.1 算法和前后端的关联思考 1.2 前端所涉及到的算法范围侧重点思考 1.3 编程语言及框架的边界和衍变思考 1.4  足以改变世界的力量 二.字符串类型常见场景及解 ...

  6. java常用算法_JAVA编程常用算法——冒泡排序

    一.冒泡排序算法运作的过程 (1)比较相邻的元素.如果第一个比第二个大,就交换他们两个. (2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. (3 ...

  7. java常用算法分析和实现 amp,Java常用算法实现

    0.总结 常见算法复杂度.jpg O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n),logn的 ...

  8. Java常用算法三:01背包问题

    文章目录 一.动态规划 1.简介 2.应用场景:背包问题 二.01背包问题 1.1 分析过程 1.2 java实现01背包问题求解 笔记来源: 尚硅谷 一.动态规划 1.简介 动态规划(Dynamic ...

  9. java常用算法_五分钟记住Java常用的八种排序算法与代码实现

    1.直接插入排序 经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中. 将第一个数和第二个数排序,然后构成一个有序序列 将第三个数插入进去,构成一个新的有序序列. 对第四个数.第五个数--直 ...

  10. Java常用算法二:分治法

    文章目录 一.分治算法的基本步骤 二.分治算法解决汉诺塔问题 2.1 汉诺塔的规则: 2.2 使用分治算法 笔记参考:尚硅谷 分治法就是把很复杂的问题分而治之,把一个很大的问题分成几个很小的问题,再把 ...

最新文章

  1. 学习 Linux,101: 引导系统
  2. MFC CTreeCtrl运用
  3. Spring Boot-切换嵌入式Servlet容器
  4. linux磁盘 分区 物理卷 卷组 逻辑卷 文件系统加载点操作案例
  5. 在CodeBlocks上配置OpenGL问题
  6. python多进程和多线程一起使用_Python3多进程与多线程区别及使用(2.线程)
  7. Selenium WebDriver的TestNG注释完整指南
  8. 检索召回 技术综述!
  9. 为什么佛系青蛙住进了阿里淘宝——访《旅行青蛙》制作人
  10. MongoDB数据访问[C#]
  11. 【AdaBoost算法】积分图代码实现
  12. Query DSL(2)----Full text queries
  13. 查询2021年怀铁一中高考成绩,怀铁一中2010高考录取名单
  14. 机器学习领域著名的期刊与会议
  15. AP(affinity propagation)聚类算法
  16. matlab 逆滤波,【CV】图像去模糊(逆滤波)
  17. 爬取20万数据,我们深扒了风口上的「享物说」
  18. Axure RP9 制作下拉式菜单
  19. Oracle10g卡顿,192MB内存运行win10 系统启动大约3分钟响应非常慢
  20. 通过银行卡号识别银行

热门文章

  1. 通信原理之数字调制原理
  2. Java 集合源码分析
  3. nginx 错误Failed to start The nginx HTTP and reverse proxy server.
  4. 我们该怎么把图片转文字呢?智能提取文字软件有哪些?
  5. 计算机网络——计算机网络病毒和黑客
  6. ADB工具安装及常用命令
  7. java web项目_一个完整JavaWeb项目开发总结
  8. 分贝噪音测试软件文件存储,分贝噪音测试工具
  9. html 实现页面加载进度,网页加载进度条实现方案
  10. 第5讲:VUE3工程中实现页面加载中效果和页面切换动画效果。