
排序算法
sdlyjzh
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
堆排序java实现
堆排序(大顶堆),首先将原始数组,构建成大顶堆。(大顶堆的意思是,根节点最大。其子节点也是大顶堆) 然后依次把根节点取出,与数组末尾元素交换。交换后,数组最后一个元素,就是最大值。前面的树,不满足大顶堆,则需要重新排序。而此时排序,和最开始构建大顶堆有些不一样。因为,子树已经是大顶堆了,所以,调整的过程,只需要对交换了元素顺序的子树进行调整就可以了。 下面是java实现。package com.原创 2017-11-23 10:34:04 · 277 阅读 · 0 评论 -
快速排序java实现
首先在数组中选择一个基准点,然后分别从数组的两端扫描数组,设两个指示标志(lo指向起始位置,hi指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换lo和hi位置的值,然后从前半部分开始扫,发现有元素大于基准点的值,就交换lo和hi位置的值,如此往复循环,直到lo>=hi,然后把基准点的值放到hi这个位置。一次排序就完成了。以后采用递归的方式分别对前半部分和后半部分排序,当前半部分原创 2017-11-23 12:08:47 · 211 阅读 · 0 评论 -
冒泡排序java实现
冒泡排序,依次比较相邻两个元素,按照大小关系,交换两个元素。通过这种方式,每次,可以将最大或最小值移动到数组尾部。public void bubbleSort(int[] data){ for(int i=0; i<data.length-1;i++){ for(int j=0;j<data.length-1-i;j++){ i原创 2017-11-23 13:04:04 · 181 阅读 · 0 评论 -
选择排序java实现
选择排序是根据冒泡排序改造的。每次在无序数据里面,选出最小的值,然后与头部元素互换。 public void selectSort(int[] data){ for(int i=0;i<data.length-1;i++){ int least = i; for(int j=i+1; j<data.length;j++){原创 2017-11-23 13:41:10 · 273 阅读 · 0 评论 -
插入排序java实现
插入排序的思想是,前面部分为有序数组,后面无序数组中的元素,依次插入到前面的有序数组中。因此,实现为,从数组中第二个元素开始,依次插入到前面的数组中。需要做的工作时,有序数组中插入点及其后面的数据,需要后移一位,然后把数据,插入到插入点。@Override public void sort(int[] data) { // TODO Auto-generated method原创 2017-11-24 22:49:04 · 251 阅读 · 0 评论