算法模板
算法模板整合
左程云老师的算法课
海梨
这个作者很懒,什么都没留下…
展开
-
逆波兰表达式——中缀表达式转后缀表达式
中缀表达式转后缀表达式中缀表达式转后缀表达式:创建num栈(数栈)和oper栈(操作符栈),从左往右扫描表达式如果是数字那么直接入num栈如果是操作符① 如果是左括号,直接入操作符栈② 如果是右括号,说明oper栈中有一个做括号与之对应,将操作符栈中的元素依次出栈,放入数栈中,直到找到对应的左括号。左括号不入数栈。③ 如果是运算符 + - * / 查找栈顶运算符的优先级 如果是空栈,直接入操作符栈 如果操作符栈的栈顶元素的优先级大于该运算符,将栈顶运算符出栈,放入数栈中 如果操原创 2021-10-15 16:10:23 · 152 阅读 · 0 评论 -
归并排序(Java实现)
归并排序给定一个数组,使用归并排序的方式对其进行排序。解:将这个数组对半分开,分别进行排序。排序后同时遍历,将元素有序存入一个新数组中,最后覆盖掉原数组。代码public class MergeSort { public static void main(String[] args) { int[] arr = {6, 2, 7, 2, 4, 1}; mergeSort(arr); for (int i = 0; i < arr.l原创 2021-09-24 15:36:10 · 128 阅读 · 0 评论 -
对数器(自己创建数据集检测代码是否通过)排序算法演示
对数器对数器可以在不使用oj平台的情况下创建测试样例测试代码。对数器的原理是创建大量随机样例对自己写好的方法进行测试,将这些结果与简单、效率低下的方法或系统写好的方法得出来的结果进行比对。如果大量测试之后没有错误,那基本可以确定代码正确。举例给定一个数组,用插入排序的方式排序。采用对数器的方式对写好的代码进行测试。解:每次取出一个元素,插入到已经排好序的序列中。编写一个可以测试数组排序的对数器。代码public class Checkout { //测试对数器 p原创 2021-09-22 19:51:57 · 202 阅读 · 0 评论 -
插入排序(Java实现)
插入排序给定一个数组,用插入排序的方式排序。解:每次取出一个元素,插入到已经排好序的序列中。代码public class InsertionSort { public static void main(String[] args) { int arr[] = {4,2,6,1,3}; insertionSort(arr); for (int i = 0; i < arr.length; i++) { Sy原创 2021-09-22 17:09:11 · 112 阅读 · 0 评论 -
冒泡排序(Java实现)
冒泡排序给定一个无序数组,用冒泡排序的方式对其进行排序。解:遍历数组,从左到右两两元素进行比较,若左边元素比右边元素大,则交换,将最大的数移到最后一个位置。同理,下一轮则将倒数第二大的数移到倒数第二个位置。长度为n的数组只需要遍历n-1次。代码交换方式1采用了异或运算的方式,使用前提是两个元素地址不能相同,但是值可以相同。已知:相同值进行异或计算为0,任何值与0进行异或操作都不变。剖析交换代码:a = a ^ b; // a = a ^ b; b = b;b = a原创 2021-09-17 11:19:00 · 130 阅读 · 0 评论 -
选择排序(Java实现)
选择排序给定一个无序数组,我们使用选择排序的方式对其进行排序。解:遍历数组。从数组第一个元素开始遍历数组,将最小的元素与第一个元素进行调换。下次遍历从下一个元素开始。遍历次数为数组长度减一次。代码public class SelectionSort { /** * 选择排序 */ public static void main(String[] args) { int arr[] = {4,2,5,7,8}; sor原创 2021-09-16 21:46:10 · 103 阅读 · 0 评论