数据结构与算法
william_cr7
你只有十分努力,才能配得上你的梦想!
展开
-
基本算法之希尔排序
一、希尔排序(1)基本思路:希尔排序又称最小增量排序,先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。(2)代码实现:原创 2017-07-02 22:49:29 · 554 阅读 · 0 评论 -
基本算法之简单选择排序算法
一、简单选择排序(1)基本思路:每次循环通过n-i次比较,从n-i-1个数中找出最小的进行交换。(i>=0&&i(2)代码实现: //简单选择排序 public static void simpleSort(List list){ //{9,8,7,6,5,4,3,2,1 } int i,j,min; int swapNum = 0; //交换次数 for(原创 2017-07-02 22:02:05 · 533 阅读 · 0 评论 -
基本算法之直接插入排序算法
一、直接插入排序算法(1)直接插入排序(Insertion Sort)的基本思想是:是将一个记录插入到已经排好的有序记录中,从而得到一个新的、记录增加1的有序序列。(2)代码实现: //直接插入排序 public static void straightInsertSort(List list){ int i,j; for(i=1;i<list.size();i++)原创 2017-07-02 22:10:28 · 557 阅读 · 0 评论 -
基本算法之堆排序
堆排序1、堆排序什么是堆?堆是一种完全二叉树,并且满足每个结点的值都不小于或者不大于其左右结点的值。再简单的说就是利用大顶推或者小顶堆进行排序。堆排序基本思路:将待排序的序列构造成一个大顶堆,这时整个序列最大值就是根节点,将根节点与堆得末尾结点进行交换后,剩下的结点重新构成一个大顶堆,此时,次大值就是根节点,重复进行上面步骤,就可以得到一个有序序列。2、代码实现public s原创 2017-07-16 19:10:58 · 325 阅读 · 0 评论 -
数据结构之树基本常识
非线性存储结构树,通过该博客您将了解到什么是树,树的基本常识、特点,以及树的几种实现表示方法。原创 2017-07-16 17:01:48 · 406 阅读 · 0 评论 -
基本算法之快速排序
快速排序1、基本思路:快速排序采用的思想是分治思想,将大的问题划分为小问题,然后一一解决。在排序时先找到一个基准,把待排序的序列分为两个部分。从后向前找比基准大的,放在右边,从前往后找比基准小的,放在左边。然后再对左右序列继续重复这样的操作。2、代码实现实现快速排序有多个版本,方法1 public static List quickSort(List list,in原创 2017-08-06 17:20:20 · 351 阅读 · 0 评论