算法代码块总结(持续更新)
算法代码块
素数
/*** 判断素数代码块* @param n 带判断数* @return 判断结果*/
public static boolean isPrime(long n) {if (n <= 3) {return n > 1;}if (n % 2 == 0 || n % 3 == 0) {return false;}long k = (long) Math.sqrt(n) + 1;for (long i = 5; i < k; i += 6) {if (n % i == 0 || n % (i + 2) == 0) {return false;}}return true;
}
打印层数为(2n-1)形状为(*)的沙漏
static void doPrint(int c, String s) {for (int i = 0; i < c - 1; i++) {int sum = 2 * (c - i) - 1;int j = 0;while (sum > 0) {if (j < i) {System.out.print(" ");} else {System.out.print(s);sum--;}j++;}System.out.println();}for (int i = 1; i <= c; i++) {int sum = 2 * i - 1;int j = 0;while (sum > 0) {if (j < (c - i)) {System.out.print(" ");} else {System.out.print(s);sum--;}j++;}System.out.println();}
}
用法:doPrint(3,""); --------> 打印5层符号为的沙漏
绝对值排序(从大到小)
/*** 从大到小进行绝对值排序* n为数组大小*/
for (int i = 0; i < n - 1; i++) {int max = i;for (int j = i + 1; j < n; j++) {if (Math.abs(array[j]) > Math.abs(array[max])) {max = j;}}if (max != i) {int t = array[i];array[i] = array[max];array[max] = t;}
}
最小公倍数
/*** 获取两个数的最大公约数** @param num1 数1* @param num2 数2* @return 最大公约数*/public static long getZuiDaGongYueShu(long num1, long num2) {long temp = 0;temp = num1 % num2;if (temp == 0) return num2;else return getZuiDaGongYueShu(num2, temp);}
大数相加Java实现
/*** 用字符串模拟两个大数相加** @param addend 加数1* @param augend 加数2* @return 相加结果*/public static String getResult(String addend, String augend) {StringBuffer sb = new StringBuffer();int length1 = addend.length();int length2 = augend.length();int temp = 0;if (length1 < length2) {//2比1长String tempStr = augend;augend = addend;addend = tempStr;temp = length2;length2 = length1;length1 = temp;temp = 0;}for (int i = length2 - 1, j = length1 - 1; i >= 0 && j >= 0; i--, j--) {int a = addend.charAt(j) - '0';int b = augend.charAt(i) - '0';temp += a + b;sb.insert(0, temp % 10);temp /= 10;}if (length1 != length2) {for (int i = length1 - length2 - 1; i >= 0; i--) {temp += addend.charAt(i) - '0';sb.insert(0, temp % 10);temp /= 10;}}if (temp > 0) {sb.insert(0, temp);}return sb.toString();}
快速排序
/*** 快速排序* @param array [description]* @param left [description]* @param right [description]*/public static void quickSort(int[] array, int left, int right) {if (left > right) {return;}//设定基准数int temp = array[left];//设置哨兵int i = left;int j = right;while (i != j) {//顺序很重要,要想从右往左找while (array[j] >= temp && i < j) {j--;}//再从左往右找while (array[i] <= temp && i < j) {i++;}//交换两个哨兵在数组中的位置//两个哨兵没有相遇if (i < j) {int t = array[i];array[i] = array[j];array[j] = t;}}//最终将基准数归位array[left] = array[i];array[i] = temp;//继续处理左边的,这是一个递归的过程quickSort(array, left, i - 1);//继续处理右边的,这是一个递归的过程quickSort(array, i + 1, right);
}
算法代码块总结(持续更新)相关推荐
- leetcode贪心算法题集锦(持续更新中)
leetcode贪心算法题集锦 leetcode贪心算法题集锦(持续更新中).python 和C++编写. 文章目录 leetcode贪心算法题集锦 一.贪心算法 1.盛最多水的容器 2.买股票的最佳 ...
- 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……(转载)
计算机视觉.机器学习相关领域论文和源代码大集合--持续更新-- zouxy09@qq.com http://blog.csdn.net/zouxy09 注:下面有project网站的大部分都有pape ...
- 初学Verilog语言基础笔记整理(实例点灯代码分析)持续更新~
实例:点灯学习 一.Verilog语法学习 1. 参考文章 刚接触Verilog,作为一个硬件小白,只能尝试着去理解,文章未完-持续更新. 参考博客文章: Verilog语言入门学习(1) Veril ...
- Facial Landmark Detecion 论文及代码汇总,持续更新~~~
转载请注明作者和出处: http://blog.csdn.net/john_bh/ 人脸关键点检测相关文献.持续更新中~~ 文章目录 Arxiv ECCV 2020 CVPR 2020 ICCV 20 ...
- 中文分词算法及python代码实现(持续更新中)
文章目录 1. 机械分词算法 1.1. 正向最大匹配算法 1.2. 逆向最大匹配算法 参考链接: https://blog.csdn.net/lcwdzl/article/details/784936 ...
- 机器学习(周志华、李航):决策树——算法原理及代码实现(持续更新)
文章目录 4.1 基本流程 决策树与条件概率分布 决策树学习 4.2 划分(特征)选择 4.2.1 信息增益 李书示例 周书示例 4.2.2 增益率 4.2.3 基尼指数 4.3 剪枝处理 4.3.1 ...
- 手游开发神器 cocos2d-x editor 教程聚合和代码下载(持续更新中)
--------------游戏基础教程篇-------------已完成--------- 一 cocos2d-x editor工具下载和基础教程JS篇: 一 手游开发神器 cocos2d-x ed ...
- 算法与数据结构模版(AcWing算法基础课笔记,持续更新中)
AcWing算法基础课笔记 文章目录 AcWing算法基础课笔记 第一章 基础算法 1. 排序 快速排序: 归并排序: 2. 二分 整数二分 浮点数二分 3. 高精度 高精度加法 高精度减法 高精度乘 ...
- WEB前端2020年更新实用代码段(持续更新)
1.使用解构获取json数据 let jsonData = {id: 1, status: "OK", data: ['a', 'b'] }; let { id, status, ...
最新文章
- 巧用360加快您的开机速度
- 【SpringBoot】使用Maven添加jQuery、bootstrap等依赖(WebJars)
- java百度云文件上传_关于如何在自己项目集成百度云BCE文件上传STS方案
- Silverlight专题(15) - 你自己的视频播放器之自定义MoveToPointSlider
- 你所不知道的模块调试技巧 - npm link #17
- 基于PyQt的扫雷游戏实现_下篇
- 编写第一个OpenACC程序
- 彼尔盖茨的十句话,绝对让你改变一生
- 学习Spring必学的Java基础知识(2)----动态代理
- 机器学习自学札记(1)
- android获取浏览器cookie,获取浏览器cookie
- 汽车电子电气架构EEA演变
- codeforces Star sky(二维前缀和)
- 《Java编程思想》 第6章 访问权限控制
- c语言小蜜蜂游戏编程,GMS2从零做游戏:小蜜蜂(一)
- vue双花括号的使用
- 【图形学数学基础】第一章
- 「 LaTex 」 写论文,插入图片方法
- 第二阶段-面向对象(四)
- Ubuntu 16.04安装ROS Kinetic