首页 > 其他 > 详细

二分查找

时间:2016-09-19 19:34:21      阅读:89      评论:0      收藏:0      [点我收藏+]
 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

 

二分查找

原文:http://www.cnblogs.com/1020182600HENG/p/5886140.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!