自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 二分查找

二分查找(又称为折半查找)是在有序序列中查找比较多的查找算法,基本思路:假设有一个从小到大的序列,取中间的元素m进行比较,如果等于需要查找的元素x则返回元素m的下标,若x大于m则再从右边的区间查找,若x小于m则再从左边的区间查找,这样每次减少一半的查找范围。时间复杂度为O(lgn),查找速度相对顺序查找要快很多,但是查找的数据序列必须是有序序列(即数据是从小到大或从大到小排序的)。所以二分查找有...

2019-08-12 16:26:02 873

原创 顺序查找

顺序查找是非常简单常用的查找算法。基本思路:从第一个元素m开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即m=x)时返回元素m的下标,如果比较到最后都没有找到,则返回-1。该算法的时间复杂度为O(n),如果数据量很大时查找效率会很低。顺序查找也是蛮力法的一种体现,就是一个个的去比较,直到要找到我要找的数据为止。 public static int seqSearch(int[] a...

2019-08-12 16:14:20 215

原创 (八)堆排序

堆排序八大排序算法之一。堆排序是指利用堆积树(堆)这种 数据结构所设计的一种排序算法,它是选择排序的一种。堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:Key[i] <= key[2i+1] && Key[i] <= key[2i+2] 或者Key[i] >= Key[2i+1] && key>=key[2i+2]即任何一非叶...

2019-08-12 15:58:41 127

原创 (七)归并排序

归并排序也是八大排序算法之一。当我们的待排序的数据数据量较大并且是线性结构时用快速排序进行排序操作。但是当我们要排序的数据是链式结构怎么办?这就引入了一个改进的排序方法——归并排序。它是建立在归并操作上的一种有效的排序算法,所谓归并是指将若干个已排好序的部分合并成一个有序的部分。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,归并排序将两个已排序的表合并成一个表...

2019-08-12 15:31:39 130

原创 (六)快速排序

快速排序是八大排序算法之一。运用也是相当广泛。快速排序是分治思想的一种体现,分治就是将一个规模为N的问题分解成K个规模较小的问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。 //begin和end是传入数组array的头尾两个下标 public static void quickSort(int[] array,int begin,int end){ ...

2019-08-12 15:26:56 107

原创 (五)链式基数排序

基数排序是八大排序算法之一。它在棋牌游戏中的应用非常常见。基数排序是采用“分配”与“收集”的办法,用对多关键码进行排序的思想实现对单关键码进行排序的方法。思路:使用链表存储数据,通过调整指针实现LSD(低关键字优先)算法进行排序。这种排序是使用在对原始数据的排序,如果有新数据添加进来的话,那就使用希尔排序。 public static void radixSort(SinglyLinke...

2019-08-12 14:50:15 1282

原创 (四)希尔排序

希尔排序也是八大排序算法之一。它是在插入排序的基础上演变而来的,也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。其排序原理是:将无序数组分割为若干个子序列,子序列不是逐段分割的,而是相隔特定的步长的子序列,对各个子序列进行插入排序;然后再选择一个更小的步长,再将数组分割为多个子序列进行排序......最后选择步长为1,即使用直接插入排序,使最终数组...

2019-08-12 09:19:19 254

原创 (三)直接插入排序

直接插入排序也是八大排序算法之一。它是希尔排序的前身。其排序原理:通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。我们假设第一个数是排好的,之后的数对排好的部分从后向前比较并逐一移动。public static void inserSort(int[] array){ for(int i = 1;i < array.length; i+...

2019-08-12 09:16:10 100

原创 (二)选择排序

选择排序是八大排序算法之一。其排序原理:在一个长度为N的无序数组中,在第一趟遍历N个数据,找出其中最小的数值与第一个元素交换其数据的索引位置,第二趟遍历剩下的N-1个数据,找出其中最小的数值与第二个元素交换…第N-1趟遍历剩下的2个数据,找出其中最小的数值与第N-1个元素交换,至此选择排序完成。选择排序与冒泡排序有点不同的是,选择排序是先交换下标,然后再交换数值。public static v...

2019-08-12 09:10:56 152

原创 (一)冒泡排序

冒泡排序是八大排序算法之一。其排序原理:每次都对相邻的两个数进行比较,如果前面一个数大于后面一个数,那就交换两个数的位置,这样一直循环下来就可以把最大的找到放在最后面,以此类推。 public static void bubbleSort(int[] array){ for(int i = array.length-1; i>0; i--){ ...

2019-08-12 09:06:32 82

转载 设计模式

创建型模式这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。工厂模式(Factory Pattern)抽象工厂模式(Abstract Factory Pattern)单例模式(Singleton Pattern)建造者模式(Builder Pattern)原型模式(Protot...

2019-03-26 20:02:27 117

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除