算法与数据结构
iteye_13226
这个作者很懒,什么都没留下…
展开
-
冒泡排序的两种实现方法(Java)
冒泡排序的两种Java实现方法。方法一: public void bubbleSort(int[] array) { int length = array.length - 1; for(int i = length; i > 0; i--) { for(int j = 0; j < i; j++) { if(array[j] > ar...2015-08-13 11:03:22 · 189 阅读 · 0 评论 -
选择排序Java版
选择排序可以说是冒泡排序的改进,减少了数据交换的次数。public void selectSort(int[] array) { int length = array.length - 1; int min = 0; for(int i = 0; i < length; i++) { min = i; for(int j = i + 1; j &...2015-08-13 11:25:23 · 94 阅读 · 0 评论 -
插入排序Java版
插入排序的基本思路是,每拿到一个元素,都要将这个元素与所有它之前的元素遍历比较一遍,让符合排序顺序的元素挨个移动到当前范围内它最应该出现的位置。在排序效率上,比冒泡排序大致快一倍,尤其适合部分数据有序的情况下。Java实现如下:public void insertSort(int[] datas) { if(null == datas || 0 == datas.length) ...2015-08-13 14:35:36 · 117 阅读 · 0 评论 -
归并排序Java版
归并排序算法采用分治方法,把两个有序表合并成一个新的有序表。归并排序是一种稳定的排序算法,即相等元素的顺序不会改变。public class MergeSort { private void merge(int[] a , int begin, int mid, int end, int[] temp) { int i = begin, j = mid + 1; int m...原创 2015-08-27 17:17:36 · 119 阅读 · 0 评论 -
堆排序Java版
堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。堆排序的平均时间复杂度为O(nlogn),空间复杂度为O(1)public void heapSort(int[] datas) { int length = datas.length; for(int i = length / 2;...原创 2016-08-29 14:57:08 · 119 阅读 · 0 评论