python - 如何在选择排序中打印索引
问题描述
- 如何在选择排序中打印索引
下面是选择排序的代码
- 循环遍历数组
- 找到最小元素的索引
- 换过来
def solve(A):
l = []
for i in range(len(A)):
min_idx = i
for j in range(i+1, len(A)):
if A[min_idx] > A[j]:
min_idx = j
#swap
A[i], A[min_idx] = A[min_idx], A[i]
l.append(A[i])
return l
查找索引的代码
for i in l:
m.append(A.index(i))
此处查找索引的代码不起作用,因为
数组已经排序,所以每次它都会给出索引为 [0,1,2,3..]
我需要为操作做 deepcopy 吗?
解决方案
你可以通过很多方式做到这一点。这是一个,
>>> sampleList = [2, 3, 1, 4, 5]
>>> index_before_sorting = [i[0] for i in sorted(enumerate(sampleList), key=lambda x:x[1])]
>>> print(index_before_sorting)
[2, 0, 1, 3, 4]
所以你可以在你的函数中取出这个并取出列表理解,这应该可以工作。如果不清楚,请告诉我。
推荐阅读
- android - 无法使用 SDK 连接到 Phantom 4 Pro v2
- java - Get Free Space Location around particular location in PDFBox tool in Java
- angular - How can i host angular 5 in sub-domain of server
- laravel-5 - 如何每月安排两次任务
- vue.js - Weex -
- vs
- algorithm - Minimum number of elements in array which gives same OR value as that of entire array
- python - cx_Oracle.NotSupportedError: Python value cannot be converted to a database value
- javascript - Javascript in react
- android - com.android.volley.ParseError: org.json.JSONException: org.json.JSONArray 类型的值 [{}] 无法转换为 JSONObject
- google-chrome-extension - Timestamp in chrome extension notification