
算法
pain discipline
方向-->积累-->积累-->成功。
展开
-
单链表的创建,包含逆排序方法,去重,是否回环
package com.cocurrent.aqs;class Node { private Object data; private Node next; public Node(Object data) { this.data = data; } public Object getData() { return ...原创 2019-10-17 16:24:01 · 88 阅读 · 0 评论 -
数据结构算法汇集
整体简述1:数组寻找数组第二小的元素总结,两个数最大,次大先存0,1位置。再循环操作。找到数组中第一个不重复出现的整数总结:用hashmap存出现次数,它的循环里面的那个操作数应该是为了找第几个不重复的整数。合并两个有序数组创建一个长度为两数组长度和的信数组,遍历放入1,2元素java对数组进行倒序排序collections中的sort方法。2:栈(先进后出...原创 2019-10-16 16:51:54 · 130 阅读 · 0 评论 -
是否为回文
package com.cocurrent.aqs;/** * @Author : WeiYaBo * @Description : * @Date : Created in 17:42 2019/10/15 * @Modified By: */public class Palindrome { public static void main(String[] arg...原创 2019-10-15 18:07:35 · 125 阅读 · 0 评论 -
算法练习
给定一个非负整数数组,第n个元素代表第n天的某股票价格,给出一个算法输出两次交易可获得的最大利益(注意:必须在买进后才能卖出,必须完成一次买卖才能进行第二次)。/** * @Description * @Author calvin * @Date 2019/9/29 15:16 **/public class test { public static void main(...原创 2019-09-29 18:22:39 · 110 阅读 · 0 评论 -
KMP字符串匹配算法
1:原始暴力算法 每次移动一下,然后重新从头开始对应 缺陷: 比较次数过多示例 1:a,a,a,a,a,a,a,b 2:a,a,a,a,b2:kmp算法 找前缀表:及计算前缀和后缀最大相同数。 然后对比:从失败处,根据前缀3,找到了第4个a处,使得p...原创 2019-09-07 20:58:40 · 90 阅读 · 0 评论 -
计数排序
技数排序是非比较排序,桶排序的一种时间复杂度:O(n),空间复杂度O(n)用一个数组,记录每个值出现的次数。另一个数字把记录的内容倾倒到此数组(桶)里。不稳定的计数排序import java.util.Arrays;/** * @Description 不稳定的计数排序 * @Author calvin * @Date 2019/9/3 21:10 **/p...原创 2019-09-03 21:49:32 · 72 阅读 · 0 评论 -
快速排序和双轴快排
快速排序/** * @Description 快速排序 * @Author calvin * @Date 2019/9/1 20:59 **/public class QuickSort { public static void main(String[] args) { int[] arr = {7, 3, 2, 10,8, 1, 9, 5, 4, 6 ...原创 2019-09-01 22:01:55 · 348 阅读 · 0 评论 -
归并排序
归并排序1/** * @Description 归并排序 前n+1有序,后n有序,对这种数组排序 * @Author calvin * @Date 2019/9/1 15:14 **/public class MergeSort { public static void main(String[] args){ int[] arr = {1,4,7,8,1...原创 2019-09-01 19:40:53 · 109 阅读 · 0 评论 -
希尔排序
含义: 先分组5排序,每组排序。缩小间隔在排一遍,然后分2组排序,最后分一组排序。对比普通插入排序: 普通插入排序:移动次数少,移动距离大。所以希尔排序效率高。初次排序图 希尔排序 时间复杂度:O(),空间复杂度:O(1),稳定性:稳定。 /** * @Description 希尔排序...原创 2019-09-01 14:17:54 · 108 阅读 · 0 评论 -
插入排序
插入排序 样本小且基本有序的时候效率比较高。/** * @Description 插入排序 * @Author calvin * @Date 2019/9/1 11:38 **/public class InsertSort { public static void main(String[] args) { int[] arr = {9, ...原创 2019-09-01 12:25:35 · 82 阅读 · 0 评论 -
冒泡排序
基本不用,太慢。/** * @Description 冒泡排序 * @Author calvin * @Date 2019/8/31 21:36 **/public class BubbleSort { public static void main(String[] args) { int[] arr = {9, 2, 1, 4, 6, 8, 7, 5,...原创 2019-08-31 22:06:19 · 82 阅读 · 0 评论 -
验证算法和方法检测
自己写的算法验证是否正确,防止凑巧正确情况 1:数组长度不能太小,最好随机,数据内容随机 2:使用正确方式对照验证 3:对照次数应该多次下面是我写的一个排序方法的对照测试,可以借鉴。import java.util.Arrays;import java.util.Random;/** * @Description 对数器-用于验证算法和方法检测...原创 2019-08-31 21:19:33 · 2155 阅读 · 0 评论 -
选择排序
1:时间复杂度 主要是主体 if (arr[j] < arr[minPos]) minPos = j;的运行次数(n-1)+(n-2)+....+1=n²/2 + n/2+C(常量)也就是O(n²)2:空间复杂度 因为没有新建数组存储,所以是O(1)3:稳定性 不稳因为复杂度较高,且不稳,所以此方法基本不用/** * @...原创 2019-08-31 18:28:44 · 100 阅读 · 0 评论 -
十种常见排序算法时间空间复杂度
来源--马士兵速记口诀原创 2019-08-31 16:57:56 · 658 阅读 · 1 评论 -
java-二分查找算法
public class BinarySearch { /** * 二分查找算法 * * @param srcArray 有序数组 * @param key 查找元素 * @return key的数组下标,没找到返回-1 */ public static...转载 2019-08-29 09:31:36 · 76 阅读 · 0 评论