算法
stepMoreForever
step more
展开
-
锦鲤签到个人算法总结
需求目前客户点击签到按钮获取固定的积分值。预期客户点击签到按钮进行一次锦鲤抽奖,抽到的用户获得188积分。未抽到的则还是获取固定的积分值。锦鲤签到有一定的数量限制,比例是昨日签到人数的5%。算法和实现public class Test { // 昨日签到总人数 static int count = 1000; // 今日锦鲤最大的数量 static int luckyCount = 3; // 设置奖励 static Map<String原创 2021-09-09 17:40:11 · 218 阅读 · 0 评论 -
拼手气积分红包
拼手气积分红包算法,借鉴了网上的微信红包算法。不过积分的最小单位是1,所以进行了相关的修改操作。import java.time.LocalDateTime;/** * @author yangyun * @title * @Package com.zeekrlife.micro.mpintegral.utils * @date 2021/8/16 4:16 下午 */public class RedPacketsTest { public static int getRandom原创 2021-08-20 14:32:48 · 129 阅读 · 0 评论 -
由A-Z和0-9生成五位随机数
实现方法package com.example.demo.random;import java.security.SecureRandom;import java.util.*;public class RandomTest { private static String generateWord() { String[] beforeShuffle = new String[]{"1", "2", "3", "4", "5", "6", "7",原创 2021-07-23 09:05:25 · 753 阅读 · 0 评论 -
快速排序递归算法详解
快速排序算法的原理和步骤:首先进行分区,分区指的是从数组随机选取一个值,以其为轴,将比它小的放到它左边,比它大的值放到它右边。确定指针,我们选取排除轴元素的数组最左(左指针)和最右(右指针)的元素。具体步骤如下:左指针逐个格子向右移动,当遇到大于或等于轴的值时,就停下来。右指针逐个格子向左移动,当遇到小于或等于轴的值时,就停下来。将两指针所指的值交换位置。重复上述步骤,直至两指针重合,或左指针移到右指针的右边。将轴与左指针所指的值交换位置。快速排序严重依赖于分区。它的运作方式如下所示。原创 2021-03-02 11:20:32 · 2546 阅读 · 0 评论 -
大O记法的简单理解
我们一般都用大O表示法来形容算法(解决某个问题的一套流程)的时间上的快慢。大O算法一般只关注其所用的步数。 大O解答的是这样的问题:当数据增长时,步数如何变化的问题?1 常用的大O算法分类:1.1 常数时间 O(1)常数时间就是所有数据增长但步数不变;常用O(1)来表示。1.2 线性时间 O(N)O(N)称为线性时间,意思是当数组增加一个元素时,O(N)算法就要增加1步。1.3 对数时间 O(logN)O(logN)算法的步数等于二分数据直至元素剩余1个的次数。N个元素O(N原创 2021-03-01 14:44:38 · 848 阅读 · 0 评论 -
插入排序、选择排序、冒泡排序、快速排序、归并排序和堆排序
初级算法:选择排序、插入排序、希尔排序实现代码public class Example { /** * 选择排序 * * @param a */ public static void choseSort(Comparable[] a) { // 将a[]按升序排序 int N = a.length; ...原创 2019-01-22 15:28:46 · 469 阅读 · 0 评论