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