欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > Python中给定一个数组a = [2,3,9,1,0],找出其中最大的一个数,并打印出来 求解?

Python中给定一个数组a = [2,3,9,1,0],找出其中最大的一个数,并打印出来 求解?

2024/10/25 5:28:17 来源:https://blog.csdn.net/Pydatas/article/details/142266489  浏览:    关键词:Python中给定一个数组a = [2,3,9,1,0],找出其中最大的一个数,并打印出来 求解?

Python有内置的max函数可以取最大值:

max([2,3,9,1,0])

也可以使用sorted先排序,再索引取出最大值:

sorted([2,3,9,1,0])[-1]

如果不用内置函数,自己排序算法来找出最大值,也有很多选择。

比如冒泡排序、循环排序、交换排序、插入排序、选择排序等等。

1、冒泡排序

是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。

def bubble_sort(arr, simulation=False):def swap(i, j):arr[i], arr[j] = arr[j], arr[i]n = len(arr)swapped = Trueiteration = 0if simulation:print("iteration",iteration,":",*arr)x = -1while swapped:swapped = Falsex = x + 1for i in range(1, n-x):if arr[i - 1] > arr[i]:swap(i - 1, i)swapped = Trueif simulation:iteration = iteration + 1print("iteration",iteration,":",*arr)return arr
print(bubble_sort([2,4,5,1]))

2.循环排序

def cycle_sort(arr):len_arr = len(arr)for cur in range(len_arr - 1):item = arr[cur]index = curfor i in range(cur + 1, len_arr):if arr[i] < item:index += 1if index == cur:continuewhile item == arr[index]:index += 1arr[index], item = item, arr[index]while index != cur:index = curfor i in range(cur + 1, len_arr):if arr[i] < item:index += 1while item == arr[index]:index += 1arr[index], item = item, arr[index]return arr
print(cycle_sort([2,4,5,1]))

3、交换排序

def exchange_sort(arr):arr_len = len(arr)for i in range(arr_len-1):for j in range(i+1, arr_len):if(arr[i] > arr[j]):arr[i], arr[j] = arr[j], arr[i]return arr
print(exchange_sort([2,4,5,1]))

4、插入排序

def insertion_sort(arr, simulation=False):iteration = 0if simulation:print("iteration",iteration,":",*arr)for i in range(len(arr)):cursor = arr[i]pos = iwhile pos > 0 and arr[pos - 1] > cursor:# Swap the number down the listarr[pos] = arr[pos - 1]pos = pos - 1arr[pos] = cursorif simulation:iteration = iteration + 1print("iteration",iteration,":",*arr)return arr
print(insertion_sort([2,4,5,1]))

5、选择排序

def selection_sort(arr, simulation=False):iteration = 0if simulation:print("iteration",iteration,":",*arr)   for i in range(len(arr)):minimum = ifor j in range(i + 1, len(arr)):# "Select" the correct valueif arr[j] < arr[minimum]:minimum = jarr[minimum], arr[i] = arr[i], arr[minimum]if simulation:iteration = iteration + 1print("iteration",iteration,":",*arr)return arrprint(selection_sort([2,4,5,1]))

通过排序算法得到顺序列表后,通过索引就可以得到最大值,so easy!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com