算法
qq_42072311
这个作者很懒,什么都没留下…
展开
-
输入一个正整数,经过一次交换两个位置数字,获取最大的数。
思路:1、将数字各位取成一个整数数组2、从高位遍历,从当前为的所有低位取出最大的位,且下标最低。3、如果当前的高位,和低位最大的位比较,如果高位小就交换。然后将结果再转换成数字。实现: int data = 326579897; int tmp = data; List<Integer> dataList = new ArrayList<>(); int ws = 10; whi原创 2020-09-08 22:33:01 · 2200 阅读 · 0 评论 -
选择排序——简单选择排序
思想:每一趟从待排序的元素中选出关键字最大(或最小)的元素,按顺序放在已排序的元素最后面(或最前面),直到排序完成。java实现private static void selectSort(int[] data, int n) { int i, j, k; int tmp; for (i = 0; i < n - 1; i++) { k = i; for (j = i + 1; j < n;原创 2020-09-05 22:46:44 · 122 阅读 · 0 评论 -
基数排序算法
基数排序,是很特别的排序方法,通常用于一些特殊的场合,如扑克牌排序等等。思想:利用“基数空间”概念将问题规模进行规范,变小,在排序的过程中,只要按照“基排”思想,是不用进行关键字比较,最后得到有序集。...原创 2020-09-05 22:28:18 · 94 阅读 · 0 评论 -
二路归并排序
归并排序思想:1、最基本的将两个有序的列表归并为一个有序的列表(es搜索结果集合并应该就是用的这个思路) 2、排序一般是一个乱序的集合,使用二路归并排序算法来处理。需要进行一个抽象:首先将乱序的列表看成多个长度只有一个元素的列表。这样使用二路归并算法,第一遍归并后,就形成长度为2的多个有序列表,第二遍归并后,形成长度为4的有序列表。直到最后形成长度为n的一个有序列表。排序结束。java实现:public class MergeSort { public s...原创 2020-09-05 16:15:42 · 576 阅读 · 0 评论