数据结构&算法
规则固态长方体物质空间移动工程师
临渊羡鱼不如退而结网,扬汤止沸不如釜底抽薪
展开
-
快速排序【Java实现】
public static void main(String[] args) { int arr[] = {60,30,70,90,50,10,40,80}; System.out.println("排序前:"+ Arrays.toString(arr)); quickSort(arr,0,arr.length-1); } /* * 左标记的作用是找到一个比基准值pivot大的数字 * 右标记的作用是找到一个比基...原创 2020-07-02 22:37:49 · 729 阅读 · 1 评论 -
插入排序【Java实现】
插入排序法介绍:插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。插入排序法思想:插入排序(InsertionSorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表插入排序思路图:插入排序的过程演示 @Test原创 2020-07-02 16:11:44 · 189 阅读 · 0 评论 -
使用异或运算(^)交换两个数的值
通过按位异或运算,可以实现两个值的交换,而不必使用临时变量。例如交换两个整数a,b的值,可通过下列语句实现:a=10100001, b=00000110a=a^b; //a=10100111b=b^a; //b=10100001a=a^b; //a=00000110原创 2020-07-02 13:57:46 · 1044 阅读 · 0 评论 -
选择排序【Java实现】
选择排序基本介绍选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。选择排序思想:选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值, 与 arr[0]交换,第二次从 arr[1]~arr[n-1]中选取最小值,与 arr[1]交换,第三次从 arr[2]~arr[n-1]中选取最小值,与 arr[2] 交换,…,第 i 次从 arr[i-1]~arr[n-1]原创 2020-07-01 18:13:02 · 227 阅读 · 0 评论 -
冒泡排序【Java实现】
来源:尚硅谷http://www.gulixueyuan.com/my/course/319冒泡排序基本介绍冒泡排序(Bubble Sorting)的基本思想是:通过对排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过交换,就说明序列有序,因此要在排序过程中设置一个标志flag判断元素是否进行过交换。从而减少不必要的比较。(这里说的原创 2020-07-01 00:36:59 · 300 阅读 · 0 评论 -
算法的时间复杂度
来源:尚硅谷 http://www.gulixueyuan.com/my/course/319算法的时间复杂度时间频度基本介绍时间频度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。忽略常数项2n+20 和 2n 随着n 变大,执行曲线无限接近, 20可以忽略3n+10 和 3n 随着n 变大,执行曲线无限接近, 10可以忽略忽略低次项忽略系数结论:随着n值变原创 2020-06-30 17:03:05 · 1017 阅读 · 0 评论 -
哈希表的数据结构
转载自:https://www.jianshu.com/p/b468abd86f61Hash表的结构图:数组 + 链表哈希表(Hash table,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表白话一点的说就是通过把Key通过一个固定的算法函数(hash函数)转换成一个整型数字,然后就对该数字对数组的长度进行取余,取余结果就转载 2020-06-06 22:35:52 · 2602 阅读 · 0 评论 -
数据结构知识结构框架图
来源:尚硅谷 http://www.gulixueyuan.com/my/course/310原创 2020-05-28 17:29:22 · 378 阅读 · 0 评论 -
Java实现输出100以内的质数及算法结构优化
输出100以内的所有质数质数:也叫素数,只能被1和他本身整除的自然数最小的质数:2方法一:效率很低public class PrimeNumber { public static void main(String[] args) { } @Test public void method1(){ boolean b = true;...原创 2020-04-15 17:51:17 · 2244 阅读 · 0 评论 -
Java实现数组反转的几种方法
Java实现数组反转的几种方法要求:首先创建一个长度是5的数组,并填充随机数。对这个数组实现反转效果方法一: /** * 方法一:使用临时数组 */ @Test public void method1(){ int[] array = new int[5]; System.out.println("【方法一】:...原创 2020-04-14 00:09:31 · 19653 阅读 · 4 评论 -
Java输出数组最小值的几种方法
Java输出数组最小值的几种方法要求:首先创建一个长度是5的数组然后给数组的每一位赋予随机整数找出最小(大)的一个值出来最小值:方法一:该方法来自HOW2J:https://how2j.cn/k/array/array-create/280.html int array[] = new int[5]; System.out.println("数组的...原创 2020-04-12 12:09:06 · 13362 阅读 · 1 评论