📅  最后修改于: 2023-12-03 15:10:52.204000             🧑  作者: Mango
当我们需要检查一个列表是否按升序排列时,可以使用 Python 内置的 sorted()
函数。
def is_sorted_asc(lst):
"""
检查列表是否按升序排列
Parameters:
lst (list): 需要检查的列表
Returns:
bool: 如果列表按升序排列,返回 True,否则返回 False
"""
return lst == sorted(lst)
这个函数接收一个列表参数 lst
,使用 sorted()
函数对列表进行排序,再和原列表进行比较。如果两个列表相等,即原列表按升序排列,那么返回 True,否则返回 False。
使用方法:
lst = [1, 2, 3, 4, 5]
print(is_sorted_asc(lst)) # True
lst = [1, 3, 2, 4, 5]
print(is_sorted_asc(lst)) # False
我们也可以手动遍历列表每个相邻的元素,比较它们的大小关系来判断列表是否按升序排列。
def is_sorted_asc(lst):
"""
检查列表是否按升序排列
Parameters:
lst (list): 需要检查的列表
Returns:
bool: 如果列表按升序排列,返回 True,否则返回 False
"""
for i in range(len(lst)-1):
if lst[i] > lst[i+1]:
return False
return True
这个函数遍历列表里除了最后一个元素以外的所有元素,比较相邻的元素大小。如果出现前一个元素大于后一个元素的情况,说明列表没有按升序排列,直接返回 False。如果遍历完整个列表没有出现这种情况,说明列表按升序排列,返回 True。
使用方法与上面的方法相同。
以上两种方法都可以用来检查列表是否按升序排列。第一种方法使用内置的 sorted()
函数,比较简单,但是需要排序整个列表,因此时间复杂度为 O(nlogn);第二种方法只需要遍历整个列表一遍,时间复杂度为 O(n)。由于第二种方法不需要排序,因此在需要检查的列表比较大的情况下,效率会更高。