日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习练习 java 二分查找法

發布時間:2024/10/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习练习 java 二分查找法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 package com.hanqi; 2 3 import java.util.*; 4 5 public class Test5 { 6 7 public static void main(String[] args) { 8 // TODO 自動生成的方法存根 9 //數組的二分查找法 10 //前提:數組要排好序 11 12 //1.隨機生成生成數組 13 Random r1 = new Random(); 14 int[] array = new int[10]; 15 for (int i = 0; i < array.length; i++) { 16 // 產生隨機數 17 array[i] = r1.nextInt(100); 18 } 19 // 遍歷輸出數組 20 System.out.println("數組的原始順序"); 21 for (int t : array) { 22 System.out.print(t + " "); 23 } 24 25 //2.冒泡排序 26 System.out.println("排序后的順序"); 27 //總的循環次數 28 for (int k = 0; k < array.length - 1; k++) { 29 //優化:每次冒泡時的循環次數,比上一次少1 30 for (int i = 0; i < array.length - 1-k; i++) { 31 if (array[i] > array[i + 1]) { 32 // 從小到大 33 int zhong = array[i]; 34 array[i] = array[i + 1]; 35 array[i + 1] = zhong; 36 37 } 38 } 39 System.out.println("數組第" + (k + 1) + "次排序后的順序"); 40 for (int t : array) { 41 System.out.print(t + " "); 42 } 43 } 44 //3.二分查找 45 46 //1)計算出數組的中間位置:(開始位置索引+結束位置索引)/2 47 48 //2)取出中間未知的值和要查找的數字比較,根據比較結果決定下一步查找的部分 49 //3)計算出下一部分數組的中間位置 50 51 //要查找的值 52 53 54 int a=53; 55 //找到的值得位置 56 57 int w=-1;//-1代表沒找到 58 //開始索引 59 int start=0; 60 //結束索引 61 int end=array.length-1; 62 //循環條件 63 while(start<=end) 64 { 65 int m=(start+end)/2; 66 if(a==array[m]) 67 { 68 w=m;//找到了 69 break; 70 } 71 else if(a>array[m]) 72 { 73 start=m+1; 74 } 75 else 76 { 77 end=m-1; 78 } 79 } 80 System.out.println("找到的位置是"+w); 81 } 82 83 }

?

?

?

?

轉載于:https://www.cnblogs.com/zhoudi/p/5489440.html

總結

以上是生活随笔為你收集整理的学习练习 java 二分查找法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。