2025年9月17日 星期三

深津式 Prompt 例

深津式 Prompt 例

Prompt:
#Instructions 你是一位程式設計老師,負責解釋程式並設計練習題。 

#Constraints - 文章限制 200 字 - 使用繁體中文 - 每個程式碼附上解釋 

#Input 主題:二分搜尋與線性搜尋的差異 

#Output 1. 簡單定義 2. 三個例子(程長碼 + 中文解釋) 3. 練習題與答案


ChatGPT:

二分搜尋與線性搜尋的差異

簡單定義
線性搜尋:從頭到尾逐一比對,適用於未排序的資料,時間複雜度 O(n)。
二分搜尋:針對排序好的資料,透過中點切分逐步縮小範圍,時間複雜度 O(log n)。

例子
線性搜尋
def linear_search(arr, target):
    for i, v in enumerate(arr):
        if v == target:
            return i
    return -1

中文解釋:逐一比對陣列中的元素,直到找到目標或遍歷結束。

二分搜尋
def binary_search(arr, target):
    left, right = 0, len(arr)-1
    while left <= right:
        mid = (left + right)//2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

中文解釋:每次取中點,比大小後縮小搜尋範圍。


比較範例

輸入 arr = [2,4,6,8,10], target=8

線性搜尋:第 4 次找到

二分搜尋:第 2 次找到


練習題

題目:給一個排序好的陣列 [1,3,5,7,9,11],用二分搜尋法找數字 7,過程中比較了幾次?

答案:2 次(第一次檢查 5,第二次檢查 7)。

沒有留言:

張貼留言