算法
ymmwyb
这个作者很懒,什么都没留下…
展开
-
快速排序
快速排序是一种分治的算法,它将一个数组分为两个子数组,将两部分独立的进行排序。 在了解快速排序算法之前最好先了解一下递归算法,感觉快速排序和递归排序是很相似的,都是使用递归算法将数组元素降到两个然后方便排。快速排序就是先将数组的第一个元素作为固定的元素,然后将比这个元素小的元素都排在左边,大的都排在右边。核心算法是如何将选定的元素排在合适的位置,如果利用一个辅助数组会简单的多,但是以空间换时间...原创 2020-02-08 11:05:44 · 120 阅读 · 0 评论 -
排序算法----插入排序
算法描述 为了给插入的元素腾出空间,我们需要将其余所有元素在插入之前都向右移动一位,这种算法叫做插入排序。我的理解就是要插入的元素与其左边的每一个元素比较,使左数组有序。 算法实现 public class InsertSort { public static void sort(int[] array) { int temp; for(int i=1;i<array....原创 2019-07-18 15:38:29 · 86 阅读 · 0 评论 -
排序算法----选择排序
算法描述: 首先,找到数组中最小的那个元素;其次,将它和数组的第一个元素交换位置;接着,在剩下的元素中找最小的元素,将它与数组中第二个元素交换。如此反复,直到遍历完整个数组。因为不断的在选择剩下元素的最小值,所以叫选择排序。 代码实现: public class SelectSort { public static void sort(int[] array)//实现排序的方法 { ...原创 2019-07-16 20:42:26 · 113 阅读 · 0 评论 -
排序算法----希尔排序
算法描述 将数组中任意间隔为h的元素都是有序的。这样的数组我们称之为h有序数组。换句话说就是一个h数组就是h个相互独立的有序数组编织在一起组成的一个数组。在进行排序是时,如果h很大,我们就能将元素移到很远的地方,为了实现更小的h有序创造方便。用这种方式,对于任意以1结尾的h序列,我们都能将数组进行排序,这就是希尔排序。 代码描述 public class ShellSort { publ...原创 2019-07-20 15:05:06 · 90 阅读 · 0 评论 -
排序算法----归并排序
1. 什么是归并排序 归并排序就是将两个有序的数组并成一个更大的有序数组的递归排序算法。 2. 代码描述 一.自顶向下的归并排序 public class MergeSort { private static int[] x; public static void merge(int[] array,int start,int mid,int end)//在左右两边有序的情况下,进行原地归并...原创 2019-07-30 10:50:15 · 78 阅读 · 0 评论 -
排序算法----快速排序
快速排序文字描述 快速排序是一种分治的排序算法。选择一个切分位置,它将一个数组分成两个子数组,将两部分独立的排序,如此进行递归调用,当两个子数组有序时,整个数组也自然有序了。 切分需要满足的条件: 对于某个j,a[j]已经排定 a[start]到a[j-1]中的所有元素都不大于a[j] a[j+1]到a[end] 所有元素都不小于a[j] 2. 代码描述 public class Quic...原创 2019-08-01 10:11:14 · 116 阅读 · 0 评论