
排序
文章平均质量分 79
一些普通较简单的排序
MrYuShiwen
能够成就别人的人才能称得上是真英雄,愿我们彼此相互成就,成为那个真英雄!
Java开发工程师,后端工程师,努力想成为架构师的小萌新;
写代码和学习新知识是一件非常有趣的事情,它即是个人爱好也是个人职业;
愿我的文章对读者有用,欢迎评论,一起进步!
如果期待更多我的知识分享,请关注我,一起成为那个了不起的人吧!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
冒泡排序 java代码实现
冒泡排序:这是学编程后都会遇到的一种排序算法,简单来说就是两两比较,如果前面大于后面,交换,否则不交换,之后指针向前移动,继续判断。代码部分也很简单,一看就能明白其原理,这里不再进行赘述。java代码:public void toBubbleSort(int []arr) { for(int i = 0;i<arr.length;i++) { for(int j = 0;j<arr.length-1;j++) { if(arr[j]>arr[j+1]) { in原创 2020-07-12 18:31:29 · 820 阅读 · 1 评论 -
快速排序(随机化快速排序 随机主元)java代码(递归实现)分治法(分而治之)
固定主元的快速排序:1.首先选取一个主元(一般取数组的头部或者尾部为主元);2.把其他数与主元比较,如果比主元小,放主元左边,如果比主元大,放主元右边;(这个时候主元左边的数都只是比主元小,左边的数还没有从小到大排好)。3.对主元左边数组段重复1,2步骤;对右边也重复1,2步骤。ps:上述步骤2的具体实现说明(主元以每次选取数组尾端元素为例):1.创建两个指针i,j;i初始值为数组头部元素下标减一,j为数组头部元素下标(i左边存放比主要小的元素,i到j存放比主元大的元素,等到j走到尾端要交换主元素原创 2020-07-10 21:30:13 · 1503 阅读 · 0 评论 -
归并排序 (分而治之算法) java代码实现(java完整代码)java递归实现(分而治之)MergeSort(分治法)
归并排序是分而治之算法策略的典型代表之一分而治之算法的思路:分而治之三步骤:分解原问题,解决子问题,合并问题解1.分解原问题:将原问题分解为若干个规模较小,相对独立,与原问题形式相同的子问题。2.解决子问:若子问题规模较小且易于解决时,则直接解。否则,递归地解决各子问题。3.合并:将各子问题的解合并为原问题的解。归并排序:以数组为例,假设数组长度为n1.首先把其拆分n组每组一个,2.然后每相连的两组进行比较,并排序;(第一遍排序之变成了n/2组,每组为2个,当然若n为奇数,则最后一组只有原创 2020-07-07 17:16:38 · 2426 阅读 · 0 评论 -
希尔排序(简单易懂,图文并貌,插入排序)java代码实现
希尔排序是直接插入排序算法的一种更高效的改进版本。希尔排序思想:按照增量d对其进行分组,每组内部分别进行直接插入排序;(如果不太懂直接插入排序的java具体实现方法,可参考本人所写另一篇博文:直接插入排序)一般首先取d等于序列长度的一半,然后以后每次减半,直到增量等于1.下面是本人用ProcessOn所绘制的排序过程图:(以11个数为例进行说明,请大家认真分析此图,耐心一点,写得很详细,看完此图应该会有所收获)java实现代码(有注释):public void toShellSort(in原创 2020-07-06 22:25:05 · 994 阅读 · 4 评论 -
插入排序(直接插入排序)java代码实现(注释详细 简单易懂)
算法思想:以数组为例:每次从未排序的数组中取出一个,与之前排好序的数组逐一比较大小,并插入到适当位置,直到未排序的数组为空。java代码(注释写得比较详细,请认真看代码段的注释):public void toInsertSort(int []arr) { for(int i = 1; i<arr.length;i++) { //i是当前数 for(int j = i-1 ; j>=0;j--) { //j是从i-1开始向前移动,并每次与arr[i]判断大小原创 2020-07-06 16:13:52 · 1696 阅读 · 0 评论 -
选择排序 java实现(言简意赅)
选择排序的思路: 每次都从未排序的序列中找到一个最小(大)的元素,把它放到已排好序的序列尾部; 重复上述过程,直到未排序的序列为空。java代码(从小到大):public void toSelectSort(int []arr) { for(int i = 0 ; i<arr.length-1; i++) { int minIndex = i; //暂且认为当前的arr[i]是arr[i]到arr[length-1] 中最小的 for(int j = i原创 2020-07-04 16:50:15 · 652 阅读 · 0 评论