Python - 最近K排序
給定的問題陳述需要找到 K 的最近值,並使用 Python 根據 K 的值對它們進行排序。因此,我們將使用基本的 Python 來解決此問題。
理解問題
手頭的問題是根據與 K 值的差值的遞增順序對列表中的給定專案進行排序。K 是給定的值,它將用於計算每個專案的差值,並根據最小差值對專案進行排列。讓我們用一個例子來理解這個問題
因此,我們可以在這裡看到差值在增加。並且我們根據專案與 K 值的差值的遞增順序對專案進行了排列。
上述問題的邏輯
為了解決給定的問題,我們將使用 abs 函式,該函式將用於計算 K 與列表專案之間的絕對差值。因此,透過使用此差值,我們將對給定的列表進行排序,這就是所需的結果。
演算法
步驟 1 − 定義一個名為 item_distance 的函式,並將列表中的專案逐個傳遞給該函式,以獲取 K 和專案之間的差值。
步驟 2 − 獲取差值後,我們將初始化 K 的值和列表作為專案。
步驟 3 − 因此,在 sorted 方法的幫助下,我們將根據 item_distance 對列表中的給定專案進行排序。
示例
# Define the function to find the distance def item_distance(item): return abs(item - K) #Initialize the value of K K = 10 #The list of items items = [10, 4, 12, 15, 3, 6, 7, 9] # Sort the input list as per the distance from K sorted_items = sorted(items, key=item_distance) print(sorted_items)
輸出
[10, 9, 12, 7, 6, 15, 4, 3]
複雜度
程式碼根據 K 的值對給定的輸入列表進行排序所需的時間為 O(n log n),其中 n 是輸入列表的大小。因為我們使用了 Python 中的內建函式 abs 來計算 K 和列表項之間的絕對差值。並使用了 sorted 函式,該函式需要 O(n log n) 的時間來對元素進行排序。
結論
我們已經成功地為給定的問題建立了程式碼,該問題是根據專案和 K 之間的差值對專案進行排序。因為我們使用了兩個內建函式 abs 和 sorted 來最大程度地減少執行時間。此演算法對於排序此類問題非常有效。
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP