From c53f64d56ba3d29b04cfc0657032fd76bd195143 Mon Sep 17 00:00:00 2001 From: RiverTwilight Date: Thu, 5 Jan 2023 10:23:12 +0800 Subject: [PATCH] code(ts): worst best time complexity --- .../worst_best_time_complexity.ts | 6 ++-- .../time_complexity.md | 36 ++++++++++++++++++- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/codes/typescript/chapter_computational_complexity/worst_best_time_complexity.ts b/codes/typescript/chapter_computational_complexity/worst_best_time_complexity.ts index b263f994..97ca003a 100644 --- a/codes/typescript/chapter_computational_complexity/worst_best_time_complexity.ts +++ b/codes/typescript/chapter_computational_complexity/worst_best_time_complexity.ts @@ -5,7 +5,7 @@ */ function randomNumbers(n: number): number[] { - nums = Array(n); + let nums = Array(n); for (let i = 0; i < n; i++) { nums[i] = i + 1; } @@ -19,7 +19,7 @@ function randomNumbers(n: number): number[] { return nums; } -function findOne(nums) { +function findOne(nums: number[]): number { for (let i = 0; i < nums.length; i++) { if (nums[i] == 1) { return i; @@ -28,7 +28,7 @@ function findOne(nums) { return -1; } -function main() { +function main(): void { for (let i = 0; i < 10; i++) { let n = 100; let nums = randomNumbers(n); diff --git a/docs/chapter_computational_complexity/time_complexity.md b/docs/chapter_computational_complexity/time_complexity.md index 9f9e36c9..815424dd 100644 --- a/docs/chapter_computational_complexity/time_complexity.md +++ b/docs/chapter_computational_complexity/time_complexity.md @@ -2329,7 +2329,7 @@ $$ ```js title="worst_best_time_complexity.js" function randomNumbers(n) { - nums = Array(n); + let nums = Array(n); for (let i = 0; i < n; i++) { nums[i] = i + 1; } @@ -2368,7 +2368,41 @@ $$ === "TypeScript" ```typescript title="worst_best_time_complexity.ts" + function randomNumbers(n: number): number[] { + let 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: number[]): number { + for (let i = 0; i < nums.length; i++) { + if (nums[i] == 1) { + return i; + } + } + return -1; + } + + function main(): void { + 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); + } + } ``` === "C"