算法学习-二分法排序
来源:互联网 发布:修复手游闪退软件下载 编辑:程序博客网 时间:2024/05/18 12:43
有时我常想,如果...那么...,可是人生没有那么多的假设。换句话说,今天我们所遇到的的瓶颈,正是见证我们成长的东西。就象修仙小说写的,当修炼到圆满时,就会遭遇雷劫。通过雷劫的考验才能升级,然后进行下一等级的修炼。人生痛苦和幸福的活着。为什么学习算法?因为算法能让我们透过性象认识本质。没有算法和数据结构的理论为指导,不管我们工作几年、看过多少的代码,获取多少的经验,也只是代码的搬运工,不能造轮子。就象只懂外力,不懂内在修炼的话,永远无法成为大师。不要在乎结果,跟着心,一步一步......
认识二分法排序
(1) 什么是二分法插入排序。
二分法插入排序是在插入第i个元素时,对前面的0~i-1元素进行折半,先跟他们中间的那个元素比,如果小,则对前半再进行折半,否则对后半进行折半,直到left>right,然后再把第i个元素前1位与目标位置之间的所有元素后移,再把第i个元素放在目标位置上。
(2) 二分法插入排序的复杂度。
二分插入排序是稳定的与二分查找的复杂度相同;
最好的情况是当插入的位置刚好是二分位置 所用时间为O(n);
最坏的情况是当插入的位置不在二分位置 所需比较次数为
log₂n
S<=∑n「log₂n「-2^n「log₂n「+1
k= 1
平均时间O(n^2)
编程
public class BinayInsertSortSample {public void sort(int[] a) {int len = a.length;for (int i = 0; i < len; i++) {int left = 0;int right = i - 1;int mid = 0;int temp = a[i]; // 待插入到前面有序序列的值while(left <= right) {mid = (left + right) / 2;if (temp < a[mid]) {right = mid - 1;} else {left = mid + 1;}}for (int j = i - 1; j >= left; j--) {//比left右边大的值往后移一位,等待temp插入a[j + 1] = a[j];}if (left != i) {a[left] = temp;}}for (int i = 0; i < len; i++) {System.out.println(" " + a[i]);}}public static void main(String[] args) {BinayInsertSortSample binaryInsertSort = new BinayInsertSortSample();int [] a = {10,8,11,3,4,6,7,11,2,90,18,33,28,-1,0,7};binaryInsertSort.sort(a);}}
参考资料:
二分法排序百度百科
http://baike.baidu.com/link?url=9qAs-irtrsFCARtl9b8bnm9IqAfn6dU8_HEr3YjtefQcUlNZvwG-vSEUFaM5nXobcakpsAvCiWgq2xl_3Ylg0byGapktlKqJRYHPvcfQqWYA6vT-a2HCkUQs08S59UWNmHVjBWufmYWBgu0E7MktK_UbvAgzo8ZORJdBryAi_Xe
0 0
- 算法学习-二分法排序
- [学习笔记]排序算法之 二分法查找
- 二分法排序算法
- 《算法导论》二分法排序
- 排序算法练习-二分法
- 排序算法 -- 二分法插入排序
- 排序算法:二分法插入排序
- 算法学习--二分法查找
- 排序算法之 二分法查找
- 快速排序,二分法排序,插入排序算法
- 学习笔记:二分法排序,选择排序,冒泡排序,以及递归算法.
- 排序算法——二分法插入排序
- Java排序算法之二分法插入排序
- 排序算法二:二分法插入排序
- Java算法之二分法和排序算法
- 算法学习之二分法查找
- PHP 算法学习之二分法
- java排序算法二分法 希尔排序 快速排序 归并排序
- php urlencode和urldecode
- 浅谈MDN JavsScript
- Mybatis 高级结果映射 ResultMap Association Collection
- HDU 2612 Find a way (两次bfs)
- 【设计模式 6】单例模式和代理模式的结合使用测试
- 算法学习-二分法排序
- 字符串解析
- 【软件工程】软件开发模型
- 如何录屏制作动态图片,并在markdown中显示
- 指派问题的数学模型
- PAT乙级1059
- 算法训练 王、后传说
- 二值图像快速细化算法
- 2017-1-15