排序算法
Be_With_I
这个作者很懒,什么都没留下…
展开
-
堆排序
利用数组和二叉树的相互转化,可以利用树结构的特点,进行排序测试了速度。因为要经常交换。所以速度和希尔排序比慢了2倍package a;import sun.security.util.Length;import java.util.Arrays;public class HeapSortDemo { public static void main(String[] args...原创 2020-02-26 17:43:08 · 129 阅读 · 0 评论 -
基数排序
在800万数据的时候比希尔 要快 ,比快速 ,归并要快但是占内存空间过大,8000万,会造成堆溢出,现在写法不能比较负数需要创建一个二维数组用于排序,一个一位数组用于下标存储。package a;import java.util.Arrays;public class Radix { public static void main(String[] args) { ...原创 2020-02-14 15:02:19 · 122 阅读 · 0 评论 -
归并排序
测试了速度比快速排序 慢一点点 ,主要特点是借助一个temp数组来保存顺序的数据。用递归分解合并。package a;import java.util.Arrays;public class Merge { static int count = 0; public static void main(String[] args) { int[] arr...原创 2020-02-14 09:54:38 · 121 阅读 · 0 评论 -
快速排序
是冒泡排序的优化,利用递归,和分成两半交换的思想,数据中可以有重复,但是800万测试速度并不如希尔排序快,不知道为什么package a;import java.util.Arrays;public class Quick { public static void main(String[] args) { int[] arr = new int[8000000...原创 2020-02-13 15:10:45 · 175 阅读 · 0 评论 -
希尔排序用插入实现
在数据为8万的时候与插入排序速度差不多。在80万的时候明显拉开差距代码如下package a;import java.util.Arrays;public class InsetShell { public static void main(String[] args) {// int var = 8; int var = 800000; ...原创 2020-02-11 11:19:03 · 144 阅读 · 0 评论 -
用交换实现希尔排序
gap 是步长 步长是逐渐减少的。 最外层循环确定了步长,然后用中层循环进行遍历,就像之前的遍历一样,最下层的遍历控制比较的数据,为什么用- gap 呢,因为你要加会下标越界package a;import java.util.Arrays;public class Shell { public static void main(String[] args) { ...原创 2020-02-11 11:19:56 · 205 阅读 · 0 评论 -
插入排序
这个排序就是从第二个 元素开始插入。如果应该在前边,就把之前的数据挪到后边,因为每次只插入一个数。所以有一个变量就可以存储想后移动最多也是一位。package a;import java.util.Arrays;public class Insert { public static void main(String[] args) {// int[] arr =...原创 2020-02-10 15:19:57 · 221 阅读 · 0 评论 -
选择排序
整体上外层和冒泡一样。冒泡是先出现最后一个,每次交换,重点在于换而选择是先出来第一个,通过变量记录位置,最小的最终交换。重点在于找 和记录。package a;import java.util.Arrays;public class Select { public static void main(String[] args) { int[] arr = {5,...原创 2020-02-10 13:45:03 · 94 阅读 · 0 评论 -
冒泡排序的一个简单优化及测试
就是判断在一次比较中是不是有换位置。如果没换,结束package a;import java.util.Arrays;public class Bobble { public static void main(String[] args) {// int [] arr= {1,2,3,4,5};// int [] arr= {2,8,-5,20,-...原创 2020-02-10 13:02:06 · 130 阅读 · 0 评论 -
冒泡排序
这个排序的特点是外层控制次数, 内层负责比较。通过交换 注意次数package a;import java.util.Arrays;public class Bobble { public static void main(String[] args) { int [] arr= {2,8,-5,20,-9}; int temp =0; ...原创 2020-02-10 11:20:40 · 99 阅读 · 0 评论 -
排序算法的前序
分为 内部排序 内存 8 种外部排序 内存 + 存储时间复杂的的讲解,如果考运行来做统计,一个可能花费时间过长,第二是受计算机的硬件影响。时间频度:int start = 0;int end = 100;for(int i = 1,i<=end:i++){start+=i;}这个的时间复杂度是T(n)=n+1 为什么不是n ,因为 在 最后还要判断一次 ...原创 2020-02-10 09:58:17 · 260 阅读 · 0 评论