博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分查找2
阅读量:2206 次
发布时间:2019-05-04

本文共 2692 字,大约阅读时间需要 8 分钟。

1 package com.wh.ObjectHomeWork; 2  3 import java.util.Arrays; 4 import java.util.Scanner; 5  6 public class CharArray { 7     private char[] words; 8  9     public CharArray(char[] words) { // 构造方法10         this.words = words;11     }12 13     public void sort() { // 对数组进行冒泡排序14         for (int i = 0; i < words.length - 1; i++) {15             for (int j = 0; j < words.length - 1 - i; j++) {16                 if (words[j] > words[j + 1]) {17                     char t = words[j];18                     words[j] = words[j + 1];19                     words[j + 1] = t;20                 }21             }22         }23     }24 25     public int query(char key) {26         int index = 0;27         for (int i = 0; i < words.length; i++) {28             if (words[i] == key) {29                 index = i;30                 break;31             }32             if ((i == words.length - 1) && (words[i] != key)) {33                 index = -1;34             }35         }36         return index;37     }38 39     public int search(char key) {40         int start = 0, ends = words.length - 1;41         int middle;42         int index = 0;43         for (;;) {44             middle = (ends + start) / 2 + (ends + start) % 2;45             if (words[middle] == key) {46                 index = middle;47                 break;48             } else if (key < words[middle] && key >= words[start]) {49                 ends = middle;50             } else if (key > words[middle] && key <= words[ends]) {51                 start = middle;52             } else {53                 index = -1;54                 break;55             }56         }57         return index;58     }59 60     public static void main(String[] args) {61         Scanner sc = new Scanner(System.in);62         System.out.println("请随机输入一个数字:");63         int str;64         char num;65         for (;;) {66             str = sc.nextInt();67             if (str > 0 && str < 65535) {68                 num = (char) str;69                 break;70             } else {71                 System.out.println("请重新输入一个数字:");72             }73         }74         System.out.println("要查找的字符是:" + num);75         char[] arr = "qwertyuiopasdfghjklzxcvbnm".toCharArray();76         CharArray c1 = new CharArray(arr);77         int index2 = c1.query(num);78         System.out.println("排序前的索引是:" + index2);79         System.out.println("排序前:" + Arrays.toString(arr));80 81         c1.sort();82         System.out.println("排序后:" + Arrays.toString(arr));83         int index = c1.search(num);84         System.out.println("排序后的索引是" + index);85         sc.close();86     }87 }

 

转载于:https://www.cnblogs.com/1020182600HENG/p/5886656.html

你可能感兴趣的文章
Leetcode Go 《精选TOP面试题》20200628 69.x的平方根
查看>>
leetcode 130. Surrounded Regions
查看>>
【Python】详解Python多线程Selenium跨浏览器测试
查看>>
Jmeter之参数化
查看>>
Shell 和Python的区别。
查看>>
【JMeter】1.9上考试jmeter测试调试
查看>>
【虫师】【selenium】参数化
查看>>
【Python练习】文件引用用户名密码登录系统
查看>>
学习网站汇总
查看>>
【Python】用Python打开csv和xml文件
查看>>
【Loadrunner】性能测试报告实战
查看>>
【自动化测试】自动化测试需要了解的的一些事情。
查看>>
【selenium】selenium ide的安装过程
查看>>
【手机自动化测试】monkey测试
查看>>
【英语】软件开发常用英语词汇
查看>>
Fiddler 抓包工具总结
查看>>
【雅思】雅思需要购买和准备的学习资料
查看>>
【雅思】雅思写作作业(1)
查看>>
【雅思】【大作文】【审题作业】关于同不同意的审题作业(重点)
查看>>
【Loadrunner】通过loadrunner录制时候有事件但是白页无法出来登录页怎么办?
查看>>