![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构和算法
Singleton_1
这个作者很懒,什么都没留下…
展开
-
二分查找法
二分查找法import java.util.ArrayList;import java.util.List;/*** @author scXu:* @version 创建时间:2021年5月24日 上午8:36:04* 二分查找* 查找一个相同元素* 查找多个相同元素*/public class BinarySearch { public static void main(String[] args) { int[] arr = {1,3,4,6,6,6,6,6,6,6,7,9,原创 2021-05-24 09:01:12 · 57 阅读 · 0 评论 -
八大排序-快速排序
1.快速排序1.1 概念快速排序先选择数组的中轴,从数组两头分别进行循环遍历与中轴比较并交换,完成一轮后保证左边比中轴小,右边比中轴大,然后依次进行左递归,右递归,完成排序(总体思想-递归)1.2 代码实现package com.tedu.sort;import java.util.Arrays;/*** @author scXu:* @version 创建时间:2021年5月18日 上午8:54:56* 快速排序 * 先选择数组的中轴,从数组两头分别进行循环遍历与中轴比较原创 2021-05-18 12:53:04 · 58 阅读 · 0 评论 -
斐波那契数列的3种实现方式
斐波那契数列1.暴力递归2.去重递归3.双指针迭代package leetcode;/** * 3种菲波那切数列算法实现 * */public class FeiBo { public static void main(String[] args) { System.out.println(calculate(10)); System.out.println(calculate2(10)); System.out.println(calculate3(10)); }原创 2021-05-16 21:43:53 · 95 阅读 · 0 评论 -
八大排序-希尔排序
1.希尔排序1.1 概念希尔排序:总体思路-缩小增量排序希尔排序-交换法(内部方式:冒泡)希尔排序-移位法(内部方式:直接插入)1.2 代码实现import java.text.SimpleDateFormat;import java.util.Arrays;import java.util.Date;public class ShellSort { public static void main(String[] args) { //int[] arr = {8,9,1,7,原创 2021-05-16 13:57:09 · 64 阅读 · 0 评论 -
八大排序-冒泡排序
1.冒泡排序1.1 概念冒泡排序属于内部排序,冒泡排序:每一轮都是相邻的两个数据进行比较,把本轮当中的最大值交换到最后,依次进行n-1轮优化:1.嵌套循环中,j 的值的范围控制由<arr.length-1 改为<arr.length-i-1 ,这样每轮比较过的最大值就不需要在参加比较2.设置一个标志位,如果某轮比较中没有发生交换,则说明排序已经完成,直接跳出循环,排序结束1.2 代码实现import java.util.Arrays;/*** @author scXu:原创 2021-05-15 15:51:37 · 125 阅读 · 0 评论 -
八大排序-插入排序
1.插入排序1.1 概念插入排序属于内部排序,是将一个数组分为一个有序表,和一个无序表,然后从无序表中取数据,依次和有序表中的数据向前进行比较,直到找到适当的位置,进行赋值(此处默认从小到大排序)1.2 代码实现import java.util.Arrays;/** * @author scXu: * @version 创建时间:2021年5月15日 下午3:08:33 * * 插入排序-内部排序 */public class InsertSort { pub原创 2021-05-15 15:31:51 · 62 阅读 · 0 评论 -
八大排序-选择排序
1.选择排序1.1 概念选择排序属于内部排序,它的实现方式是(假定从小到大排序 array[n] ):第1轮从数组中选择最小的数据,放到array[0]的位置,第2轮从数组中选择最小的数据,放到array[1]的位置,第3轮从数组中选择最小的数据,放到array[2]的位置,…第n-1轮从数组中选择最小的数据,放到array[n-2]的位置,共执行n-1轮1.2 代码实现import java.util.Arrays;/*** @author scXu:* @version 创建原创 2021-05-14 20:03:37 · 64 阅读 · 0 评论 -
数据结构与算法---(带头节点的单链表的增删改查)
单链表如图是单链表的简单示意图单链表主要有一个头结点,n个节点连接而成,每一个节点保存着下一个节点的地址,看似连续,实则每一个节点在内存中的地址不一定连续,最后一个节点的地址区域为null,头结点一般不存数据,只是为了标识链表的存在,连接链表package com.linkedlist;/** * *本类主要实现单链表的创建,添加节点,按顺序添加节点,修改节点数据,删除节点,打印链表数据(带头结点的单链表,但是头结点不能动,只是为了标识链表的存在) * 1.HeroNode 英雄节点,原创 2021-05-09 22:54:08 · 157 阅读 · 0 评论 -
数据结构与算法---(二维数组转化为稀疏数组-稀疏数组还原为二维数组)
稀疏数组使用场景某些特定情况下(棋盘,地图等等),可能二维数组中存在很多无意义的数据,我们可以将它转化为稀疏数组,来节省存储空间以下是二维数组转化为稀疏数组-稀疏数组还原为二维数组的整个过程的代码实现:package com.chuang;public class SparseArray { public static void main(String[] args) { //创建一个原始二维数组 11* 11 //0 表示没有棋子 1 表示黑子 2表示原创 2021-05-07 20:12:58 · 111 阅读 · 0 评论