分享好友 最新动态首页 最新动态分类 切换频道
Java基础——常用API(Arrays工具类、冒泡排序、选择排序、二分查找、正则表达式)
2024-12-26 19:38

           第一轮 : arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] arr[3]-arr[4] 比较4次
           第二轮 : arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] 比较3次
           第三轮 : arr[0]-arr[1] arr[1]-arr[2] 比较2次
           第四轮 : arr[0]-arr[1] 比较1次
                 public static void main(String[] args) {
                        int[] arr = {22, 55, 44, 33, 11};
                        // 外循环: 比较的轮数
                        for (int i = 0; i < arr.length - 1; i++) {
                                // 内循环: 比较的次数
                                // -1: 避免索引越界
                                // -i: 提升效率
                                for (int j = 0; j < arr.length - 1 - i; j++) {
                                        if (arr[j] > arr[j + 1]) {
                                                int temp = arr[j];
                                                arr[j] = arr[j + 1];
                                                arr[j + 1] = temp;
                                        }
                                }
                        }
                        System.out.println(Arrays.toString(arr));
                }

                public static void main(String[] args) {
                        int[] arr = {22, 11, 44, 33, 55};
                        for (int i = 0; i < arr.length - 1; i++) {
                                for (int j = i+1; j < arr.length; j++) {
                                        if(arr[i] > arr[j]){
                                                int temp = arr[i];
                                                arr[i] = arr[j];
                                                arr[j] = temp;
                                        }
                                }
                        }
                        System.out.println(Arrays.toString(arr));
                }

四、二分查找(折半查找)前提是数组已经拍好序

        思路:
                1. 定义两个变量记录最小索引, 和最大索引
                2. 折半的动作不止一次, 应该使用循环
                        条件 while(min <= max)
                3. 循环中计算出中间索引
                4. 加入判断
                        元素如果大于中间元素 : min = mid + 1;
                        元素如果小于中间元素 : max = mid – 1;
                        元素如果等于中间元素 : 将索引返回 (mid)
                private static int binarySearch(int[] arr, int num) {
                        // 1. 定义两个变量记录最小索引, 和最大索引
                        int min = 0;
                        int max = arr.length - 1;
                        int mid;
                        // 2. 折半的动作不止一次, 应该使用循环
                        while (min <= max) {
                                // 3. 计算中间索引
                                mid = (min + max) / 2;
                                // 4. 比对
                                if (num > arr[mid]) {
                                        min = mid + 1;
                                } else if (num < arr[mid]) {
                                        max = mid - 1;
                                } else {
                                        return mid;
                                }
                        }
                        // 5. 没找到, 返回-1
                        return -1;
                }

五、正则表达式
        
本质来说就是一个字符串, 可以指定一些规则, 来校验其他字符串.
        [] : 单个字符
        1. 字符类 :
                [abc] 只能是a, b, 或c
                [^abc] 除了a, b, c之外的任何字符
                [a-zA-Z] a到z A到Z,包括(范围
                [a-d[m-p]] a到d,或m通过p([a-dm-p]联合
                [a-z&&[def]] d, e, 或f(交集)
                [a-z&&[^bc]] a到z,除了b和c([ad-z]减法
                [a-z&&[^m-p]] a到z,除了m到p([a-lq-z]减法
        2.预定义字符类:
               . 任何字符
                 : 转义字符
                d 一个数字: [0-9]
                D 非数字: [^0-9]
                s 一个空白字符: [ x0Bf ]
                S 非空白字符: [^s]
                w [a-zA-Z_0-9] 英文、数字、下划线
                W [^w] 一个非单词字符
        3. 数量:
                X?          X, 一次或0次
                X*            X, 零次或多次 (任意次数)
                X+           X, 一次或多次
                X {n}        X,正好n次
                X {n, }      X,至少n次
                X {n,m}    X,至少n但不超过m次

        4.校验QQ号、手机号、邮箱的正则表达式
                QQ号"[1-9]\d{4,11}"
                手机号"[1][3-9]\d{9}"
                邮箱"\w+[@][\w&&[^_]]+(\.[a-z]{2,3})+"

最新文章
让Wordpress成为你微信小程序的文章管理利器
中文名: WordPress 宝典原名: WordPress Bible别名: WordPress,Bible,宝典,PHP,CMS作者: Aaron Brazell资源格式: PDF出版社: Wiley书号: 978-0-470-56813-2发行时间: 2010年地区: 美国语言: 英文简介:   WordPress 是一种使用 PHP 语言和
梅里雪山天气预报,科技之巅的实时天气体验,预见奇幻之旅
文案开篇,我们站在梅里雪山脚下,仰望那云雾缭绕的山巅,想象着未来的天气变幻莫测,随着科技的飞速发展,我们已不再满足于简单的天气预报,而是追求极致的精准与个性化的体验,我们将为您揭晓一款全新的高科技产品——梅里雪山实时天气预
迅猛兔加速器安卓官方版软件亮点
迅猛兔加速器安卓官方版下载是一款非常高效的游戏网络加速软件。它无需会员,承诺永久免费,采用先进的专线加速技术,有效降低网络延迟,保障游戏连接的稳定性和速度。该软件支持普通模式和高级模式两种加速模式,用户可根据网络环境随时切
【10(国际版/双4G)搜狗手机输入法下载】HTC 10 国际版/双4G搜狗手机输入法12.1.1免费下载
搜狗输入法,拥有超大中文词库,输入更加精准,智能。搜狗智能旺仔带你用表达,斗图,妙语,输入更加有趣。******特色功能******【搜狗专属超大词库】搜狗多年积累,中文系统词库,输入首选更准确【语音输入】更快更准的语音输入,没有网络
收录网
价值评估:收录网于2024-12-16发布于本站,并永久保存在16757网址导航收录中,收录网主要是介绍收录网网站目录(www.shouluwang.com),免费提供网站目录分类检索,收集正规的中文网站,用户可以自主提交,再由我们编辑、审核,形成网站索引
火爆程度仅次于ChatGPT!字节豆包需要多少算力支撑?哪些公司有望受益?
  来源:华尔街见闻  民生证券分析师团队表示,随着字节在AI方面的布局不断深入,未来算力、数据、能耗解决方案方面的需求将大幅增加,也将带动AI教育、广告服务等行业增长。  字节跳动旗下大模型产品豆包数据表现亮眼,数据显示,豆
靠建站,他实现年收入百万
大家好我叫霍常亮,是一名电商推广从业者,专注于淘宝、京东、拼多多等电商平台营销推广及系统软件开发。简单来说,我们通过帮助卖家推广商品来获取提成,俗称淘客。目前我们的网站月点击量超五十万,年流水和服务客户数也已超百万。从白手
红豆电信不封号电销卡稳定靠谱-全国归属地
电销卡作为一种流量卡或注册卡,已经被广泛应用于电销、短信营销和其他营销方式中。它不仅可以提供高质量的通讯服务,价格更加优惠,成为了广大企业营销的。在众多电销卡品牌中,红豆电信的电销卡特别受欢迎,因为它不仅可以提供出色的服务
举报OpenAI的26岁小伙疑自杀!死前揭ChatGPT训练黑幕
年仅26岁的Suchir Ba在旧金山的公寓中被发现死亡。作为一名曾任职于OpenAI的研究员,他以“吹哨人”的身份公开指控公司涉嫌版权侵犯,却在指控发布仅一个月后离世。Ba出生在加州,早年便展现出对人工智能的热爱。本科就读于伯克利大学计算
相关文章
推荐文章
发表评论
0评