我正在进行选择排序,但是没有使用sorted()。
我尝试查看sorted()方法的源代码,以查看是否有潜在客户,但运气不好。
我想要这样的东西:
list1 = [3,4,2]
list2 = []
<code that sorts list 1, into list2>
print(list2)
和list2打印2,3,4
答案 0 :(得分:1)
这是您想要的选择类别:
def selection_sort(list):
for i in range(0, len(list) - 1):
min_num = list[i]
for j in range(i + 1, len(list)):
min_num = min(min_num, list[j])
list[list[i:].index(min_num) + i], list[i] = list[i], min_num
return list
但是选择排序的时间复杂度是:{平均:Θ(n ^ 2),更糟:O(n ^ 2),最佳:Ω(n ^ 2)},您可能想要一个更好的方法。>
答案 1 :(得分:0)
通过将每次迭代中读取的每个元素与列表中的其他元素进行比较,可以不使用sort()
函数对它们进行排序。
list1 = [3,4,2]
list2 = []
minimum = list1[0] # arbitrary number in list
while list1:
minimum = list1[0] # arbitrary number in list
for x in list1:
if x < minimum:
minimum = x
list2.append(minimum)
list1.remove(minimum)
print (list2)
或其他方法,但结果将更改原始列表。
for i in range(len(list1)):
for j in range(i + 1, len(list1)):
if list1[i] > list1[j]:
list1[i], list1[j] = list1[j], list1[i]
print (list1)