插入排序
来源:互联网 发布:淘宝禁售手机充值了 编辑:程序博客网 时间:2024/06/18 14:08
//3.1 简单插入排序 private static void insertSort(int[] a) { //依次把每元素拿来插入到有序序列当中(从第2个开始,到最后就行) for(int i=0;i<a.length-1;i++){//趟数 //待插入的数 int temp = a[i+1]; //下面这一段其实是决定temp坐的位置(j+1) 及 让其它比temp大的数挪动一个位置 int j=i; while(a[j]>temp){//如果有序序列中"第j位置的数" 比 "待插入的数" 大,则把 a[j]往后挪一个位置 a[j+1] = a[j];//让a[j]挪到j+1的位置 j--; if(j<0){ break; } } //让temp坐在第j个数的后面即 j+1的位置 a[j+1] = temp; } }
//3.2 加入二分查找的插入排序 private static void binaryInserSort(int[] a) { for(int i=0;i<a.length-1; i++){//趟数,每一趟是插入第"i+1"个数 //待插入的数 int temp = a[i+1]; //用二分来决定待插入的位置 int low=0; int high=i; int mid;//中间位置 while(low<=high){ mid = (low+high)/2; //用中间位置的元素和当前待插入的数(temp)比较 if(a[mid]>temp ){ //落在左半区 high = mid-1; }else{//落在右半区 low = mid+1; } } //上面这一段只是找到插入位置 //移位,把待插入位置腾出来 for(int j=i; j>high; j--){ a[j+1] = a[j]; } //让temp坐在第high+1的位置 a[high+1] = temp;//a[low] = temp; } }
0 0
- 插入排序-【插入排序】
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- 插入排序
- IO流Demo
- 怎样找到网页中视频的地址
- MFC--Tree Control 控件
- 2-数字图像变换
- golang Garbage Collector(GC)
- 插入排序
- 使用ADB命令删除已安装应用
- 哈夫曼编码
- 二分法&牛顿拉夫逊法
- NetApp备份之SnapVault和SnapDiff技术
- [最小生成树]USACO 3.1 Agri-Net 最短网络
- HDU P2036 改革春风吹满地
- Kattis
- 坚持#第154天~突破瓶颈