数据结构
文章平均质量分 79
eininotop
做更好的自己!
展开
-
走进数据结构之排序(一)---直接插入排序
一、直接插入排序算法分析直接插入排序是假定前i个构成的子序列是处于已排序的情况下进行排序的,然后将第i个元素与前i个构成的子序列逆序进行比较,如果是要升序排序,则比较第i个元素是否比j=i-1(i-1需要>=0)的元素大,如果是则第i个元素的位置(即j+1的位置上)保持不动,反之则将j=i-1的元素放置到i的位置,再进行第i个元素与j=i-2(i-2需要>=0)的,依次进行,如果第i个元素刚好原创 2017-05-01 10:48:19 · 10185 阅读 · 3 评论 -
走进数据结构之排序(二)---希尔排序
一、希尔排序算法分析希尔排序基本思想就是分组的直接插入排序!如何分组呢?希尔排序是以间距来分组的!那间距又如何取呢?希尔排序是以传进来的数据序列的长度作为间距初始值的,每一趟排序都是将数据序列的一半作为间距来进行排序操作,直到间距取为1,停止排序。有了间距又如何来排序呢?其实就是分组的直接插入排序,只是直接插入排序的间距是1,而希尔排序的间距为上述值。二、代码实现packa原创 2017-05-02 09:39:30 · 783 阅读 · 0 评论 -
走进数据结构之排序(三)---冒泡排序
一、冒泡排序算法分析比较相邻两个元素大小,如果反序,则交换。若按升序排序,每趟将数据序列中的最大元素交换到最后位置,就像气泡从水里冒出一样。二、代码实现package top.einino.swapsort;public class BubbleSort {//交换keys[i]与keys[j]元素,i、j范围由调用者控制private static void swap(i原创 2017-05-03 14:30:28 · 1552 阅读 · 0 评论 -
走进数据结构之排序(四)---快速排序
一、快速排序算法分析升序算法描述:在数据序列中选择第一个元素作为基准值,每趟从数据序列的两端开始交替进行,将小于基准值的元素交换到序列前端,将大于基准值的元素交换到序列后端,介于两者之间的位置则成为基准值的最终位置,同时,序列被划分成两个子序例,再分别对两个子序列进行快速排序,直到子序列长度为1,则完成排序。降序,我就不多介绍了,就改改关键字眼,代码实现有降序,可以看看代码!二、代码实原创 2017-05-04 14:14:14 · 414 阅读 · 0 评论 -
走进数据结构之排序(五)---直接选择排序
一、直接选择排序算法分析第一趟从n个元素的数据序列中选出关键字最小/大的元素并放到最前/后位置,下一趟再从n-1个元素中选出最小/大的元素并放到次前/后位置,以此类推,经过n-1趟完成排序。二、代码实现package top.einino.selectsort;public class StraightSelectSort {//交换keys[i]与keys[j]元素,i、j范原创 2017-05-06 00:07:31 · 977 阅读 · 0 评论 -
走进数据结构之排序(六)---堆排序
一、堆排序算法分析堆排序分为两个阶段:1、将一个数据序列建成最小/大堆,则根结点值最小/大2、进行选择排序,每趟将最小值(根结点值)交换到后面,再将其余值调整成堆,依此重复,直到子序列长度为1,排序完成。使用最小/大堆,得到排序的结果是降/升序的。二、代码实现package top.einino.selectsort;public class HeapSort {//交原创 2017-05-06 12:11:42 · 477 阅读 · 0 评论 -
走进数据结构之排序(七)---归并排序
一、归并排序算法分析将n个元素的数据序列看成是由n个长度为1的排序子序列组成,反复将相邻的两个子序列归并成一个排序子序列,直到合并成一个序列,则排序完成。二、代码实现package top.einino.mergesort;public class MergeSort {//将X中分别以begin1, begin2开始的两个相邻子序列归并(升序)到Y中, 子序列长度为n原创 2017-05-07 11:28:05 · 416 阅读 · 0 评论