zoukankan      html  css  js  c++  java
  • Java实现折半(二分)插入排序

     1 /*折半插入查找思想:每趟将一个带排序的元素作为关键字插入到已经排好的部分序列的适当位置上,查找适当位置的方法用折半查找法
     2  * 适合记录数较多的场景
     3  * 在查找插入位置时节省了时间
     4  * 在记录移动次数方面和直接插入查找是一样的,所以时间复杂度还是O(n^2)
     5  * 空间复杂度同为O(1)*/
     6 
     7 import java.util.Scanner;
     8 
     9 public class zhebancharusort {
    10 
    11     public static void main(String args[]){
    12         Scanner cin = new Scanner(System.in);
    13         String str = cin.nextLine();
    14         String st[] = str.split(" ");
    15         int num[] = new int[st.length];
    16         for(int i=0;i<st.length;i++){
    17             num[i]=Integer.parseInt(st[i]);
    18         }
    19         sort(num);
    20         for(int j=0;j<st.length;j++){
    21             System.out.print(num[j]);
    22             System.out.print(" ");
    23         }
    24         cin.close();
    25     }
    26     public static void sort(int R[]){
    27         for(int i=1;i<R.length;i++){
    28             if(R[i]<R[i-1]){
    29                 int low=0;
    30                 int high=i-1;
    31                 int temp = R[i];
    32                 while(low<=high){
    33                     int mid = (int)((low+high)/2);
    34                     if(R[mid]<temp){
    35                         low=mid+1;
    36                     }else{
    37                         high=mid-1;
    38                     }
    39                 }
    40                 for(int j=i;j>low;j--){
    41                     R[j]=R[j-1];
    42                 }
    43                 R[low]=temp;
    44             }
    45         }
    46     }
    47 }
  • 相关阅读:
    里氏代换原则
    依赖倒转原则
    开放-封闭原则
    如何判断对象是否死亡和类是无用的类
    Java内存区域
    Zookeeper使用场景
    zookeeper知识点总结
    前端小技术总结
    lambda表达式的使用
    Comparator进行List集合排序
  • 原文地址:https://www.cnblogs.com/Janejxt/p/5811709.html
Copyright © 2011-2022 走看看