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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java黑皮书课后题第7章:7.16(执行时间)编写程序,随机产生一个包含100 000个整数的数组和一个关键字。估算调用程序清单7-6中的linearSearch方法的执行时间

發布時間:2024/7/23 java 49 豆豆

7.16(執行時間)編寫程序,隨機產生一個包含100 000個整數的數組和一個關鍵字。估算調用程序清單7-6中的linearSearch方法的執行時間

  • 題目
    • 題目描述
    • 程序清單7-6的linearSearch
    • 程序清單7-7BinarySearch
    • 破題
  • 代碼
    • 運行實例

題目

題目描述

7.16(執行時間)編寫程序,隨機產生一個包含100 000個整數的數組和一個關鍵字。估算調用程序清單7-6中的linearSearch方法的執行時間。對該數組進行排序,然后估算調用程序清單7-7中的binarySearch方法的執行時間??梢允褂孟旅娴拇a模板獲取執行時間

long startTime = System.nanoTime(); perform the task; // 在這里調用方法 long endTime = System.nanoTime(); long executionTime = endTime - startTime;

程序清單7-6的linearSearch

public class LinearSearch{public static int linearSearch(int[] list, int key){for (int i = 0 ; i < list.length; i++){if (key == list[i])return i;}return -1;} }

程序清單7-7BinarySearch

public class BinarySearch{ public static int binarySearch(int[] list, int key){int low = 0;int high = list.length - 1;while(high >= low){int mid = (low + high) / 2;if (key < list[mid])high = mid - 1;else if (key == list[mid])return mid;elselow = mid + 1;}return -low-1;} }

破題

  • 主方法:隨機生成100 000個整數,存入數組中
  • 主方法:從這100 000個整數中隨機生成一個key(可以生成下標,再從數組中抽出)
  • 主方法:調用方法linearSearch并估算時間
  • 主方法: 對數組進行排序
  • 主方法:調用binarySearch方法并估算時間
  • 代碼

    import java.util.Arrays;public class Test7_16 {public static void main(String[] args) {//1. 主方法:隨機生成100 000個整數,存入數組中int[] list = new int[100000];for (int i = 0; i < 100000; i++){list[i] = (int)(Math.random() * 100000);}//2. 主方法:從這100 000個整數中隨機生成一個key(可以生成下標,再從數組中抽出)int key_index = (int) (Math.random() * 100000);int key = list[key_index];//3. 主方法:調用方法linearSearch并估算時間(,輸出)long startTime0 = System.nanoTime();linearSearch(list, key); // 4.long endTime0 = System.nanoTime();long executionTime0 = endTime0 - startTime0;System.out.println(executionTime0);//5. 主方法: 對數組進行排序Arrays.sort(list);//6. 主方法:調用binarySearch方法并估算時間long startTime1 = System.nanoTime();binarySearch(list, key);long endTime1 = System.nanoTime();long executionTime1 = endTime1 - startTime1;System.out.println(executionTime1);}// 線性查找法public static int linearSearch(int[] list, int key){for (int i = 0 ; i < list.length; i++){if (key == list[i])return i;}return -1;}// 二分查找法public static int binarySearch(int[] list, int key){int low = 0;int high = list.length - 1;while(high >= low){int mid = (low + high) / 2;if (key < list[mid])high = mid - 1;else if (key == list[mid])return mid;elselow = mid + 1;}return -low-1;} }

    運行實例

    213333 12337

    總結

    以上是生活随笔為你收集整理的Java黑皮书课后题第7章:7.16(执行时间)编写程序,随机产生一个包含100 000个整数的数组和一个关键字。估算调用程序清单7-6中的linearSearch方法的执行时间的全部內容,希望文章能夠幫你解決所遇到的問題。

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