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

news/2024/9/18 15:09:34/ 标签: python, 算法, 排序算法

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!


http://www.ppmy.cn/news/1525667.html

相关文章

算法设计(二)

1.归并排序 介绍 归并排序是建立在归并操作上的一种有效&#xff0c;稳定的排序算法&#xff0c;该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序&#xff0c;再使子序列段间有序。若将两个有…

【人工智能学习笔记】4_4 深度学习基础之生成对抗网络

生成对抗网络&#xff08;Generative Adversarial Network, GAN&#xff09; 一种深度学习模型&#xff0c;通过判别模型&#xff08;Discriminative Model&#xff09;和生成模型&#xff08;Generative Model&#xff09;的相互博弈学习&#xff0c;生成接近真实数据的数据分…

leecode100题-双指针-三数之和

给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 答案中不可以包含重复的三元组。 示例 1&#xff1a; 输入…

【Hot100】LeetCode—169. 多数元素

目录 1- 思路题目识别技巧 2- 实现⭐136. 只出现一次的数字——题解思路 3- ACM 实现 原题链接&#xff1a;169. 多数元素 1- 思路 题目识别 识别1 &#xff1a;统计数组中出现数量多余 [n/2] 的元素 技巧 值相同&#xff0c;则对 count 1&#xff0c;如果不相同则对值进行…

线性代数 第六讲 特征值和特征向量_相似对角化_实对称矩阵_重点题型总结详细解析

文章目录 1.特征值和特征向量1.1 特征值和特征向量的定义1.2 特征值和特征向量的求法1.3 特征值特征向量的主要结论 2.相似2.1 相似的定义2.2 相似的性质2.3 相似的结论 3.相似对角化4.实对称矩阵4.1 实对称矩阵的基本性质4.2 施密特正交化 5.重难点题型总结5.1 判断矩阵能否相…

D - 1D Country(AtCoder Beginner Contest 371)

题目链接: D - 1D Country (atcoder.jp) 题目描述: 数据范围: 输入输出: 题目分析: 典型的l, r 区间问题&#xff0c;即是前缀和问题&#xff0c;但是注意到数据范围, 数据范围1e-9 到 1e9 数据范围&#xff0c;要是从最小到最大直接for循环去模拟的话&#xff0c;时间复杂度…

使用iperf3测试局域网服务器之间带宽

文章目录 一、下载安装1、windows2、centos 二、使用0、参数详解1、centos 一、下载安装 1、windows https://iperf.fr/iperf-download.php 拉到最下面选最新版&#xff1a; 2、centos yum install iperf3二、使用 0、参数详解 服务器或客户端&#xff1a; -p, --port #…

Python+Pytest框架,“api_key.py文件怎么编写“?

1、在"api_keyword"文件夹下新增"api_key.py" import allure import requests import json import jsonpath from deepdiff import DeepDifffrom config import *allure.title("测试用例执行") class ApiKey:allure.step(">>>:开…

HTTP 协议和 APACHE 服务

WEB 服务基础 Internet 因特网 因特网是 Internet 的中文译名 在 20 世纪 60 年代&#xff08;冷战时期&#xff09;&#xff0c;美国国防部高等研究计划署&#xff08;ARPA&#xff09;出于军事上的目的&#xff0c;建立了 ARPA 网络&#xff0c;该网络由四个分布在不同地方…

大数据新视界 --大数据大厂之Kafka消息队列实战:实现高吞吐量数据传输

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

商务办公tips1:如何将网页转换为pdf

​ 场景需求&#xff1a; 商务轻办公人士获取网页内容&#xff0c;并且最好是pdf版本&#xff1f; 将网页转换为PDF的需求可能出现在多种场景中&#xff0c;以下是一些可能的情况&#xff1a; 学术研究&#xff1a;研究人员可能需要将某个学术网站的全文内容保存为PDF格式&a…

设计模式 20 状态模式

设计模式 20 创建型模式&#xff08;5&#xff09;&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式&#xff08;7&#xff09;&#xff1a;适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式、代理模式行为型模式&#xff…

使用 RabbitMQ 实现秒杀订单系统的异步消息处理

使用 RabbitMQ 实现秒杀订单系统的异步消息处理 在秒杀系统中&#xff0c;如何确保高并发环境下的订单处理稳定高效是个很大的挑战。为了解决这个问题&#xff0c;我们通常会引入消息队列&#xff0c;通过异步处理来削峰填谷。这篇文章将详细讲解如何使用 RabbitMQ 来设计一个…

Linux通过特定端口查看服务是否启动

Linux通过特定端口查看服务是否启动 你可以使用netstat或ss命令来检查特定端口上的服务。例如&#xff0c;使用ss -tuln | grep <端口号>来查看端口是否被占用。 netstat 你可以使用以下命令来查看特定端口上的服务&#xff1a; netstat -tuln | grep <端口号>…

VPP -LB 命令配置

【组网拓扑】 ping --> 2 1.1.1.3 【1.1.1.1 lb 2.2.2.2】 - 1.1.1.2 - 1.1.1.4 【GRE方式配置】 set interface state GigabitEthernet0/8/0 up set interface ip address GigabitEthernet0/8/0 1.1.1.1/24 lb conf ip4-src-addr…

看Threejs好玩示例,学习创新与技术(二)

本文接上篇内容&#xff0c;继续挖掘应用ThreeJS的一些创新算法。 本文理解难度比较大&#xff0c;可以先看一些概念&#xff0c;在难的地方培养一些意识即可。 1、扭曲的自然 下面图本身是矩形的&#xff0c;为何它可以这么扭曲呢&#xff1f;它在随机处带有一定的规律&…

Android - NDK:在Jni中打印Log信息

在Jni中打印Log信息 1、在配置CMakeLists.txt find_library( # Sets the name of the path variable.log-lib# Specifies the name of the NDK library that# you want CMake to locate.log)# Specifies libraries CMake should link to your target library. You # can link…

laravel 资源show方法问题

有张admin_users表&#xff0c;但是在控制器的show方法返回的数据时空。 路由 Route::resource(adminuser, \App\Http\Controllers\AdminUserController::class)->except([create, edit]); 解决&#xff1a; 把路由adminuser 改成 admin-user Route::resource(admin-user, …

深度学习:怎么看pth文件的参数

.pth 文件是 PyTorch 模型的权重文件&#xff0c;它通常包含了训练好的模型的参数。要查看或使用这个文件&#xff0c;你可以按照以下步骤操作&#xff1a; 1. 确保你有模型的定义 你需要有创建这个 .pth 文件时所用的模型的代码。这意味着你需要有模型的类定义和架构。 2. …

【刷题】Day4--密码检查

Hi&#xff01; 今日刷题&#xff0c;小白一枚&#xff0c;欢迎指导 ~ 【链接】 密码检查_牛客题霸_牛客网 【思路】 依次根据规则判断密码是否合格。while里嵌套个for循环&#xff0c;来进行密码的多组输入&#xff0c;for循环进行一次代表判断一个密码串&#xff1b;规则…