![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
lucky 233
这个作者很懒,什么都没留下…
展开
-
排序算法之基数排序
基数排序1、基数排序非常适合于整数排序(尤其是非负整数);2、执行流程:依次对每个数的个位、十位、百位、千位……进行排序(从低位到高位,采取计数排序)下面展示一些 内联代码片。package com.sortAlgorithm;public class RadixSort extends Sort<Integer> { @Override protected void sort() { //找出最大值 int max = array[0]; for (int i =原创 2020-06-07 20:24:13 · 162 阅读 · 0 评论 -
排序算法之计数排序
计数排序统计每个整数在序列中出现的次数,进而推导出每个整数在有序序列中的索引。下面展示一些 内联代码片。package com.sortAlgorithm;public class CountingSort extends Sort<Integer>{ @Override protected void sort() {//改进:解决了空间浪费、稳定性、负整数等问题 //找出最大值 int max = array[0]; int min = array[0]原创 2020-06-07 19:30:18 · 104 阅读 · 0 评论 -
排序算法之希尔排序
希尔排序将数据分成m列,逐列进行排序。先分成8列进行排序,然后是4,2,1下面展示一些 内联代码片。package com.sortAlgorithm;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;public class ShellSort<E extends Comparable<E>> extends Sort<E> { @Over原创 2020-06-07 11:18:49 · 196 阅读 · 0 评论 -
排序算法之快速排序
快速排序_2下面展示一些 内联代码片。package com.sortAlgorithm;public class QuickSort_<E extends Comparable<E>> extends Sort<E> { @Override protected void sort() { QuickSort(array, 0, array.length - 1); } private void QuickSort(E a[],int s,int原创 2020-06-06 18:09:27 · 233 阅读 · 0 评论 -
排序算法之快速排序
快速排序_1下面展示一些 内联代码片。package com.sortAlgorithm;public class QuickSort<E extends Comparable<E>> extends Sort<E> { @Override protected void sort() { sort(0, array.length); } /** * 对 [begin, end) 范围的元素进行快速排序 * @param begin原创 2020-06-06 18:06:20 · 104 阅读 · 0 评论 -
排序算法之归并排序
归并排序_实现1、把数组前一半排序;2、把数组后一半排序;3、把前一半拷贝到备份的临时数组中,然后把这两半归并到原来的数组。下面展示一些 内联代码片。package com.sortAlgorithm;@SuppressWarnings("unchecked")public class MergeSort_<E extends Comparable<E>> extends Sort<E> { private E[] leftArray; @Over原创 2020-06-06 12:39:09 · 92 阅读 · 0 评论 -
排序算法之插入排序
插入排序_二分搜索优化优化点:在原优化基础上减少比较次数。下面展示一些 内联代码片。package com.sortAlgorithm;public class InsertionSort_2<E extends Comparable<E>> extends Sort<E> { @Override protected void sort() { for(int begin = 1; begin < array.length; begin++) {原创 2020-06-04 19:07:05 · 80 阅读 · 0 评论 -
排序算法之插入排序
插入排序_优化将 “交换” 转为 “挪动”1、先将待插入的元素备份;2、头部有序数据比待插入元素大的,都朝尾部方向挪动一个位置。下面展示一些 内联代码片。package com.sortAlgorithm;//当数据逆序对越多时,优化越明显public class InsertionSort_1<E extends Comparable<E>> extends Sort<E> { @Override protected void sort() { f原创 2020-06-03 20:33:07 · 74 阅读 · 0 评论 -
排序算法之插入排序
插入排序_实现插入排序即将数据分为两部分,将未排好序的数据插入到排好序的数据里。下面展示一些 内联代码片。package com.sortAlgorithm;public class InsertionSort<E extends Comparable<E>> extends Sort<E> { @Override protected void sort() { for(int begin = 1; begin < array.length; b原创 2020-06-03 20:05:43 · 65 阅读 · 0 评论 -
排序算法之堆排序
堆排序_实现下面展示一些 内联代码片。public class HeapSort extends Sort{ private int heapSize; @Override protected void sort() { //原地建堆 heapSize=array.length; //i = (heapSize >> 1) - 1等价于 (heapSize - 1)/2,即自底向上求最大堆 for(int i = (heapSize >> 1) -原创 2020-06-01 21:34:26 · 102 阅读 · 0 评论 -
排序算法之选择排序
选择排序_实现下面展示一些 代码片。public class SelectionSort { public static void main(String args[]) { int[] array = {8,77,48,10,58,56,66,78,89}; for(int end = array.length-1;end>0;end--) { int maxIndex = 0; for(int begin = 1;begin <= end;begin ++) {原创 2020-05-31 11:30:49 · 116 阅读 · 0 评论 -
排序算法之冒泡排序
冒泡排序_优化_2如果序列尾部已经局部有序,可以记录最后一次交换的位置,减少比较次数。下面展示一些 代码片。public class BubbleSort { public static void main(String args[]) { int[] array = {8,77,48,10,58,56,66,78,89}; for(int end = array.length-1;end>0;end--) { //sortedIndex的初始值设在数组完全有序时有效 i原创 2020-05-30 15:16:19 · 87 阅读 · 0 评论 -
排序算法之冒泡排序
冒泡排序_优化_1进行到某一轮冒泡排序时,序列已经完全有序,可以提前终止冒泡排序。下面展示一些 代码片。public class BubbleSort { public static void main(String args[]) { int[] array= {8,48,84,58,56,66}; for(int end=array.length-1;end>0;end--) { //对每一轮冒泡排序进行判断是否已经有序 boolean sorted=true;原创 2020-05-30 11:57:33 · 122 阅读 · 0 评论 -
排序算法之冒泡排序
冒泡排序_实现下面展示一些 代码片。public class BubbleSort { public static void main(String args[]) { int[] array= {8,48,84,58,56,66}; //排序轮数 for(int end=array.length-1;end>0;end--) { //每一轮排序:比较相邻的数,第一个大于第二个则交换位置 for(int begin=1;begin<=end;begin++) {原创 2020-05-30 11:39:29 · 75 阅读 · 0 评论