数据结构算法
IT_ZJYANG
个人CSDN博客:http://blog.csdn.net/it_zjyang
展开
-
冒泡排序
什么是冒泡排序? 比如对于一个无序的数组,想让它从小到大排列,则使用冒泡的排序规则如下: 1.将第一个元素和第二个元素进行对比,如果第一个元素大于第二个,则将二者进行交换,反之,则不用交换 2.当第一步比较完之后,对第二个元素和第三个以同样的规则进行比较,依次类推,最终的结果就是这一轮比较中最大的那个数被移动到了最后的位置,符合我们的预期目的 3.进行完第一轮比较,开始第二轮,原创 2016-03-30 01:28:20 · 887 阅读 · 0 评论 -
选择排序
什么是选择排序? 比如对于一个无序的数组,想让它从小到大排列,则使用选择排序规则如下: 1.首先遍历整个数组,找到最小的元素,将它与数组第一个元素交换位置,完成第一轮交换 2.经过第1步,最小的元素已经放在了第一位,接下来可以固定刚才选出来的第一个元素,而从第2个元素开始,同样遍历后面的元素,找到其中最小的元素,将其与数组第2个元素交换,即此时已经将倒数第二小的元素放在了数组第2位,完成第二原创 2016-04-05 11:08:34 · 881 阅读 · 0 评论 -
数组
数组中分为有序数组和无序数组 有序数组的优点:查找的速度比无序数组快 有序数组的缺点:插入操作比较慢,需要后面的数据都要移动 两者删除的速度差不多,后面的元素都要向前移动 使用二分查找时就体现出有序数组的好处。这种查找比线性查找快得多,尤其对大数组来说更为显著: 利用二分法进行查找代码: public int find(int searchKey, int[] a){ i原创 2016-03-29 10:13:17 · 705 阅读 · 0 评论 -
插入排序
什么是插入排序? 插入排序其实就是指对于一个无序的数组,从下标为1的元素开始,每一轮都以此元素(即准备插入的元素)为起点,向着数组首元素(即array[0])的方向开始遍历,直到遇到比此元素小的数据项,则停止遍历,然后从这个数据项开始,其后的元素都后移一位,以腾出空间,再将一开始准备插入的那个元素插入到这个位置。 插入排序代码: int finishKey; //当前准备原创 2016-04-09 12:01:26 · 922 阅读 · 0 评论 -
图文讲解QuickSort快速排序算法(Java版)
什么是快速排序? 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 算法原理 单单看以上解释还是有些模糊,可以通过实例来理解它,下面通过一组数据来进行原创 2016-11-30 14:28:54 · 36090 阅读 · 22 评论