From 7cd1347b4453b207c28f12e7d353398cbb4a4b20 Mon Sep 17 00:00:00 2001 From: RiverTwilight Date: Thu, 5 Jan 2023 10:16:05 +0800 Subject: [PATCH] code(js): worst best time complexity --- .../worst_best_time_complexity.js | 41 +++++++++++++++++++ .../time_complexity.md | 34 +++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 codes/javascript/chapter_computational_complexity/worst_best_time_complexity.js diff --git a/codes/javascript/chapter_computational_complexity/worst_best_time_complexity.js b/codes/javascript/chapter_computational_complexity/worst_best_time_complexity.js new file mode 100644 index 000000000..db966b6fd --- /dev/null +++ b/codes/javascript/chapter_computational_complexity/worst_best_time_complexity.js @@ -0,0 +1,41 @@ +/* + * File: worst_best_time_complexity.js + * Created Time: 2023-01-05 + * Author: RiverTwilight (contact@rene.wang) + */ + +function randomNumbers(n) { + nums = Array(n); + for (let i = 0; i < n; i++) { + nums[i] = i + 1; + } + // 随机打乱数组元素 + for (let i = 0; i < n; i++) { + let r = Math.floor(Math.random() * n); + let temp = nums[i]; + nums[i] = nums[r]; + nums[r] = temp; + } + return nums; +} + +function findOne(nums) { + for (let i = 0; i < nums.length; i++) { + if (nums[i] == 1) { + return i; + } + } + return -1; +} + +function main() { + for (let i = 0; i < 10; i++) { + let n = 100; + let nums = randomNumbers(n); + let index = findOne(nums); + console.log( + "\n数组 [ 1, 2, ..., n ] 被打乱后 = [" + nums.join(", ") + "]" + ); + console.log("数字 1 的索引为 " + index); + } +} diff --git a/docs/chapter_computational_complexity/time_complexity.md b/docs/chapter_computational_complexity/time_complexity.md index 9dcb5d84b..9f9e36c96 100644 --- a/docs/chapter_computational_complexity/time_complexity.md +++ b/docs/chapter_computational_complexity/time_complexity.md @@ -2328,7 +2328,41 @@ $$ === "JavaScript" ```js title="worst_best_time_complexity.js" + function randomNumbers(n) { + nums = Array(n); + for (let i = 0; i < n; i++) { + nums[i] = i + 1; + } + // 随机打乱数组元素 + for (let i = 0; i < n; i++) { + let r = Math.floor(Math.random() * n); + let temp = nums[i]; + nums[i] = nums[r]; + nums[r] = temp; + } + return nums; + } + function findOne(nums) { + for (let i = 0; i < nums.length; i++) { + if (nums[i] == 1) { + return i; + } + } + return -1; + } + + function main() { + for (let i = 0; i < 10; i++) { + let n = 100; + let nums = randomNumbers(n); + let index = findOne(nums); + console.log( + "\n数组 [ 1, 2, ..., n ] 被打乱后 = [" + nums.join(", ") + "]" + ); + console.log("数字 1 的索引为 " + index); + } + } ``` === "TypeScript"