藍橋杯寶藏排序題目算法(冒泡、選擇、插入)

冒泡排序:

def bubble_sort(li):            # 函數方式for i in range(len(li)-1):exchange=Falsefor j in range(len(li)-i-1):if li[j]>li[j+1]:li[j],li[j+1]=li[j+1],li[j]exchange=Trueif not exchange:return

選擇排序:

從左往右找到最小的元素,放在起始位置;重復上述步驟,依次找到第2小、第3小元素...

第0次循環從[0,n-1]中找最小元素a[x],與a[0]交換

第1次循環從[1,n-1]中找最小元素,與a[1]交換

第2次循環從[2,n-1]中找最小元素,與a[2]交換

第i次循環從[i,n-1]中找最小元素,與a[i]交換

第n-2次循環從[n-2,n-1]中找最小元素,與a[n-2]交換時間復雜度:O(n'2),空間復雜度O(1),穩定

n = int(input())
a = list(map(int, input().split()))
for i in range(n - 1):  # 一共n-1次!min = i  # 每次默認第一個值為最小值for j in range(i + 1, n):if a[j] < a[min]:min = ja[i], a[min] = a[min], a[i]print(' '.join(map(str, a)))

插入排序:

第一個元素看做已排序,從左往右遍歷每一個元素:

在已排序元素中從后往前掃描 : 如果當前元素大于新元素,則該元素移動到后一位

重復第二步直至找到小于等于新元素則停止。

將上述步驟看做摸牌,每次摸一張牌從后往前判斷是否可以插入

對于第i張牌a[i],[0, i-1]中的牌都是已經排好順序的

從后往前逐個判斷ai]是否大于a[i]

如果a[i]>a[i]:則a[i]往后挪一個位置;如果a[i]<=a[i]:此時在aj+1]的位置放置a[i]

時間復雜度:O(n^2),空間復雜度O(1),不穩定

for i in range(1,len(li)):  # 功n-1趟,i表示摸到牌的下標tmp=li[i]  # 每次摸的牌j=i-1      # 手里最右側的while j>=0 and li[j]>tmp:    # 一直往左走li[j+1]=li[j]    # 右移j-=1li[j+1]=tmp   # 選好位置了

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542219.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542219.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542219.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

hive分區用2個字段有何限制_[特性]Hive動態分區功能使用

[特性]Hive動態分區功能使用2016-01-31 21:40說明Hive有兩種分區&#xff0c;一種是靜態分區&#xff0c;也就是普通的分區。另一種是動態分區。動態分區在數據導入時&#xff0c;會根據具體的字段值自行決定導入&#xff0c;并創建相應的分區。使用上更為方面。舉例準備工作創…

Linux系統中輸出輸入的管理

1.什么是輸入和輸出 輸入和輸出是計算機系統中的主機與外部進行通信的系統。它由外圍設備和輸入輸出控制系統兩部分組成&#xff0c;我們在shell中鍵入指令&#xff0c;然后送入CPU中運算產生結果&#xff0c;再將結果送到字符設備中顯示。簡單點來說輸入輸出就是通過我們的鍵盤…

find 命令示例_數組find()方法以及JavaScript中的示例

find 命令示例JavaScript find()方法 (JavaScript find() method) find() method is used to get the first element from an array which passes the given test (condition). find()方法用于從通過給定測試(條件)的數組中獲取第一個元素。 Syntax: 句法&#xff1a; array.…

統計Apache或Nginx訪問日志里的獨立IP訪問數量的Shell

1、把IP數量直接輸出顯示&#xff1a; cat access_log_2011_06_26.log |awk ‘{print $1}’|uniq -c|wc -l 2、把IP數量輸出到文本顯示&#xff1a; cat access_log_2011_06_26.log |awk ‘{print $1}’|uniq -c|wc -l > ip.txt 總結&#xff1a;如果單個訪問日志大小超過2G…

ggplot2箱式圖兩兩比較_R繪圖 第四篇:繪制箱圖(ggplot2)

箱線圖通過繪制觀測數據的五數總括&#xff0c;即最小值、下四分位數、中位數、上四分位數以及最大值&#xff0c;描述了變量值的分布情況。箱線圖能夠顯示出離群點(outlier)&#xff0c;離群點也叫做異常值&#xff0c;通過箱線圖能夠很容易識別出數據中的異常值。箱線圖提供了…

Linux系統中用戶的管理

#####用戶管理###### 1在Linux中&#xff0c;有三種用戶&#xff1a; 1 root : 也成為超級用戶&#xff0c;對系統有控制權限&#xff0c;超級用戶可以不受限制的運行任何命令&#xff0c;root 用戶可以看作是系統的管理員。 2 系統用戶&#xff1a; 系統用戶通常為系統功能所必…

c# 命名空間命名規范_C#命名空間能力問題和解答 套裝3

c# 命名空間命名規范1) There are following namespaces are given below, which is correct about "using" statement in C#.NET? In C#.Net, "using" statement is used to import the namespace in our programWe can create a new namespace with the…

shell 查出文件并復制到另一個文件夾

找出所有大于100M的文件并展示出來find / -size 100M -exec ls -lh {} \;找出特定文件內大于200字節的文件并備份到另一個文件夾里去find /opt/test -type f -size 200c -exec cp {} /opt/test/cp/ \;轉載于:https://blog.51cto.com/406647516/1875417

correl函數相關系數大小意義_用Correl函數返回相關系數,以確定屬性關系

我們辛辛苦苦制作了表格&#xff0c;當然是要作出分析的&#xff0c;肯定不能就是這么幾個數據吧。常用的分析法都是圖表&#xff0c;雖然看起來直觀&#xff0c;但是對于非作者來說&#xff0c;理解意思顯然不是那么方便。下面&#xff0c;教大家使用函數&#xff0c;來算出相…

Java之類的構造器(反射)

反射&#xff1a; Java反射機制&#xff1a;指的是在Java程序運行狀態中,對于任何一個類,都可以獲得這個類的所有屬性和方法;對于給定的一個對象,都能夠調用它的任意一個屬性和方法。這種動態獲取類的內容以及動態調用對象的方法稱為反射機制。Java的反射機制允許在對類未知的情…

java 系統自動檢測_如何在Java中檢測OS(操作系統)名稱?

java 系統自動檢測To detect the OS (operating system) name in Java, we use the getProperties() method, which is defined in System class, while calling the method, we need to pass the property name to get the OS (operating system name). 要檢測Java中的OS(操作…

shell中返回值是1為真還是假_shell腳本中判斷上一個命令是否執行成功

SQL Server 系列文章快速導航(SWF版)一.前言 在博客園寫博客不自不覺已經有5個年頭了,一開始只是為了記錄工作中遇到的問題和解決辦法,后來寫的文章不自不覺的側重在SQL Server方面的技術文章,在2014年1月終于鼓起勇氣申請了微軟S ...duilib幫助1.窗口基類:見介紹 順便貼下出來…

Linux中對進程的管理

1.what is 進程 程序&#xff08;program&#xff09;放置在儲存媒體中&#xff08;如硬盤、光盤、軟盤、磁盤等&#xff09;&#xff0c;為實體的型態存在。 進程&#xff1a;程序被觸發后&#xff0c;執行者的權限與屬性、程序的程序碼與所需數據等都會被載入內存中&#xff…

帶C#示例的String.Equality(==)運算符

C&#xff03;String.Equality運算符 (C# String.Equality operator ) "" is a String.Equality operator in C#, it is used to check whether two strings objects have the same values or not. “ ”是C&#xff03;中的String.Equality運算符 &#xff0c;用于檢…

jQuery 倒計時

function getSec(){//獲取名稱為remindataSec的ulobj document.getElementsByName("remindataSec");for(i0;i<obj.length;i){//循環得到每個毫秒數var intDiff $("#remindataTime"i"").text();var id "reminTime"i;//得到毫秒數…

Linux遠程連接與sshd服務安全設定

1.遠程連接&#xff1a; 首先設置ip&#xff1a; 設置好之后&#xff0c;先ping一下IP 看能不能通 ssh root172.25.13.103 ##表示的是&#xff1a;連接ip為172.25.13.103的root用戶 2.系統控制命令 系統控制命令的查看相關參數如下表 systemctl服務控制命令systemctl stat…

rabbitmq 同步策略_RabbitMQ高可用方案總結

RabbitMQ的集群方案有以下幾種&#xff1a;1.普通的集群exchange&#xff0c;buindling再所有的節點上都會保存一份&#xff0c;但是queue只會存儲在其中的一個節點上&#xff0c;但是所有的節點都會存儲一份queue的meta信息。因為這樣有兩個好處&#xff1a;1)存儲空間。如果每…

一個簡單的封ip規則

2019獨角獸企業重金招聘Python工程師標準>>> 一個簡單通過nginx日志封ip規則&#xff08;僅僅自己方便使用&#xff09; #!/bin/bash #Version:1.0 #Date:2016-08-09 #作用:防刷IP地址,解封蜘蛛,解封5天前封的IP地址function deny () { Date$(date "%F-%H-%M&q…

c程序預處理器的設計與實現_C預處理器-能力問題與解答

c程序預處理器的設計與實現C programming Pre-processor Aptitude Questions and Answers: In this section you will find C Aptitude Questions and Answers on Pre-processor topics like #define, #undef, #if, #endif etc. C編程預處理程序能力問題和解答&#xff1a;在本…

系統日志管理

1 查看系統中的日志 rsyslog 此服務是用來采集系統日志的&#xff0c;他不產生日志&#xff0c;只是起到采集作用 2 rsyslog 的管理 /var/log/messages服務信息日志/var/log/secuer系統登陸日志/var/log/cron定時任務日志/var/log/maillog郵件日志/var/log/boot.log系統啟動日…