zoukankan      html  css  js  c++  java
  • 二分查找

     1 package com.wh.ObjectHomeWork;
     2 
     3 import java.util.Arrays;
     4 
     5 public class CharArray {
     6     private char[] words;
     7 
     8     public CharArray(char[] words) { // 构造方法
     9         this.words = words;
    10     }
    11 
    12     public void sort() { // 对数组进行冒泡排序
    13         for (int i = 0; i < words.length - 1; i++) {
    14             for (int j = 0; j < words.length - 1 - i; j++) {
    15                 if (words[j] > words[j + 1]) {
    16                     char t = words[j];
    17                     words[j] = words[j + 1];
    18                     words[j + 1] = t;
    19                 }
    20             }
    21         }
    22     }
    23 
    24     public int search(char key){
    25         int start=0,ends=words.length-1;
    26         int middle;
    27         int index=0;
    28         for(;;){
    29             middle=(ends+start)/2+(ends+start)%2;
    30             if(words[middle]==key){
    31                 index=middle;
    32                 break;
    33             }else if(key<words[middle]&&key>=words[start]){
    34                 ends=middle;
    35             }else if(key>words[middle]&&key<=words[ends]){
    36                 start=middle;
    37             }else{
    38                 index=-1;
    39                 break;
    40             }
    41             System.out.print(index+",");
    42         }        
    43         return index;
    44     }
    45 
    46     public static void main(String[] args) {
    47         char[] arr = "qwertyuiopasdfghjklzxcvbnm".toCharArray();
    48         CharArray c1 = new CharArray(arr);
    49         System.out.println("排序前:" + Arrays.toString(arr));
    50         c1.sort();
    51         System.out.println("排序后:" + Arrays.toString(arr));
    52         char num=150;
    53         int index=c1.search(num);
    54         System.out.println(index);
    55     }
    56 }
    1 排序前:[q, w, e, r, t, y, u, i, o, p, a, s, d, f, g, h, j, k, l, z, x, c, v, b, n, m]
    2 排序后:[a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z]
    3 -1
  • 相关阅读:
    【iOS】找工作的面试题集锦
    APP项目优化--启动速度优化篇
    【Swift】Timer定时器到底准不准确?
    leetcode刷题 495~
    leetcode刷题 464~
    leetcode刷题 441~
    leetcode刷题 420~
    leetcode刷题 396~
    leetcode刷题 373~
    leetcode刷题 307~
  • 原文地址:https://www.cnblogs.com/1020182600HENG/p/5886140.html
Copyright © 2011-2022 走看看