排序相關算法--3.選擇排序

之前涉及的堆排序就是選擇排序的一種,先進行選擇。

基本選擇排序:


最簡單,也是最沒用的排序算法,時間復雜度高并且還是不穩定的排序方法,項目中很少會用。

過程:
在一個長度為 N 的無序數組中,第一次遍歷 n-1 個數找到最小的和第一個數交換。
第二次從下一個數開始遍歷 n-2個數,找到最小的數和第二個數交換。
重復以上操作直到第 n-1 次遍歷最小的數和第 n-1 個數交換,排序完成。

特點:如果挨個進行選擇那么效率太慢。

算法優化:

默認開始的數是最大值最小值。比他大就更新,比他小也更新最大最小就可以了

注意一下這種情況:

當maxi和begin重合的時候交換之后maxi就被換走了,所以就需要使mini賦給maxi.

void SelectSort(int* a, int n)
{//數組需要使用地址形式。。假設一共有n個數據int begin = 0, end = n - 1;while (begin < end)//使用的是下標形式{int mini = begin, maxi = begin;for (int i = begin + 1; i <= end; ++i)//從第2個開始{if (a[i] > a[maxi]){maxi = i;}if (a[i] < a[maxi]){mini = i;} }Swap(&a[begin], &a[mini]);
if(maxi=begin)
maxi=mini;Swap(&a[end], &a[mini]);begin++;end--;}
}

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

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

相關文章

智慧公廁系統助力城市衛生管理

在當今快速發展的城市環境中&#xff0c;城市衛生管理面臨著諸多挑戰。其中&#xff0c;公共廁所的管理一直是一個重要但又常被忽視的環節。然而&#xff0c;隨著科技的不斷進步&#xff0c;智慧公廁系統的出現為城市衛生管理帶來了全新的解決方案&#xff0c;成為提升城市品質…

OrangePi AIpro 淺上手

OrangePi AIpro 淺上手 OrangePi AIpro 介紹開發版介紹硬件規格頂層視圖和底層視圖接口詳情圖 玩轉 OrangePi AIPro燒錄鏡像串口調試連接 WiFissh 連接配置下載源 使用感受優點&#xff1a;缺點或需注意的點&#xff1a; OrangePi AIpro 介紹 開發版介紹 OrangePi AIpro是香橙…

【大語言模型】私有化搭建-企業知識庫-知識問答系統

下面是我關于大語言模型學習的一點記錄 目錄 人工智能學習路線 MaxKB 系統(基于大語言模型的知識問答系統) 部署開源大語言模型LLM 1.CPU模式(沒有好的GPU&#xff0c;算力和效果較差) 2.GPU模式&#xff08;需要有NVIDIA顯卡支持&#xff09; Ollama網絡配置 Ollama前…

【問卷系統】TDucKX更新速覽

TDuck是一款在線表單問卷收集工具&#xff0c;開源地址&#xff1a;https://gitee.com/TDuckApp一款免費的表單問卷系統&#xff1b;可快速創建問卷或業務表單&#xff0c;采用無代碼理念支持開發自定義組件。采用SpringBootVueElementUI技術棧&#xff0c;功能強大界面清新&am…

Catena-x標準解讀:CX-0007 Minimal Data Provider Service Offering v1.0.2 最小數據提供商服務產品

為了更好地理解&#xff0c;最小數據提供者服務也將被稱為“上傳工具”。 對于數據供應工具來說&#xff0c;數據主權的概念尤為重要。數據主權是Catena-X網絡的核心價值觀之一。每個參與者都應該盡可能多地控制自己的數據。這包括 他總是確切地知道他在與誰交換數據。參與者…

【GameFramework擴展應用】6-4、GameFramework框架增加AB包加解密功能

推薦閱讀 CSDN主頁GitHub開源地址Unity3D插件分享簡書地址QQ群:398291828大家好,我是佛系工程師☆恬靜的小魔龍☆,不定時更新Unity開發技巧,覺得有用記得一鍵三連哦。 一、前言 【GameFramework框架】系列教程目錄: https://blog.csdn.net/q764424567/article/details/1…

軟件測試面試200問(全)

1、B/S架構和C/S架構區別 B/S 只需要有操作系統和瀏覽器就行&#xff0c;可以實現跨平臺&#xff0c;客戶端零維護&#xff0c;維護成本低&#xff0c;但是個性化能力低&#xff0c;響應速度較慢 C/S響應速度快&#xff0c;安全性強&#xff0c;一般應用于局域網中&#xff0…

【matlab】智能優化算法優化BP神經網絡

目錄 引言 一、BP神經網絡簡介 二、智能優化算法概述 三、智能優化算法優化BP神經網絡的方法 四、蜣螂優化算法案例 1、算法來源 2、算法描述 3、算法性能 結果仿真 代碼實現 引言 智能優化算法優化BP神經網絡是一個重要的研究領域&#xff0c;旨在通過智能算法提高…

變量篩選—特征包含信息量

在變量篩選中,通過衡量特征所包含信息量大小,決定是否刪除特征,常用的指標有單一值占比、缺失值占比和方差值大小。單一值或缺失值占比越高,表示特征包含信息量越少,不同公司設置不同閾值,一般單一值、缺失值占比高于95%,建議刪除。方差值越小,代表特征包含信息量越小。…

入職前回顧一下git-01

git安裝 Linux上安裝git 在linux上建議用二進制的方式來安裝git&#xff0c;可以使用發行版包含的基礎軟件包管理工具來安裝。 紅帽系 sudo yum install gitDebian系 sudo apt install gitWindows上安裝git 去官網下載和操作系統位數相同的安裝包.或者可以直接安裝GitHub…

模板引擎是什么?

模板引擎&#xff08;Template Engine&#xff09;是一種用于生成文本輸出的工具&#xff0c;尤其在Web開發中應用廣泛。它的主要目的是將用戶界面&#xff08;通常是HTML等模板文件&#xff09;與業務數據&#xff08;內容&#xff09;分離&#xff0c;從而提供一種高效、靈活…

[圖解]SysML和EA建模住宅安全系統-14-黑盒系統規約

1 00:00:02,320 --> 00:00:07,610 接下來&#xff0c;我們看下一步指定黑盒系統需求 2 00:00:08,790 --> 00:00:10,490 就是說&#xff0c;把這個系統 3 00:00:11,880 --> 00:00:15,810 我們的目標系統&#xff0c;ESS&#xff0c;看成黑盒 4 00:00:18,030 --> …

spring管理bean源碼解析

1. 從啟動類開始 public static void main(String[] args) {// Run the SpringApplication class with the Application class as the first argumentSpringApplication.run(Application.class, args);}2. bean 實例化 // SpringAplication row1294,1295 run() // SpringApli…

Power Apps使用oData訪問表數據并賦值前端

在使用OData查詢語法通過Xrm.WebApi.retrieveMultipleRecords方法過濾數據時&#xff0c;你可以指定一個OData $filter 參數來限制返回的記錄集。 以下是一個使用Xrm.WebApi.retrieveMultipleRecords方法成功的例子&#xff0c;它使用了OData $filter 參數來查詢實體的記錄&am…

【Parallel SSH】Ubuntu系統配置pssh實現多主機并行執行Master分發的命令

文章目錄 一、配置多機免密登錄二、ubuntu系統安裝pssh三、并行命令腳本編寫 一、配置多機免密登錄 假設有1臺主機作為Master分發命令&#xff0c;3臺主機作為Servers執行命令。假設Master主機內網IP地址為192.168.0.12&#xff0c;Servers外網IP及對應的hostname分別為&#…

最新盤點!2024年最值得了解的24款項目管理軟件

一、企業該如何選擇一款項目管理工具&#xff1f;選擇項目管理工具時需要考慮哪些因素&#xff1f; 在選擇和對比項目管理工具時&#xff0c;可以通過加權方式進行對比和評估。參考以下模板&#xff0c;可以把自己關注的項目管理工具&#xff0c;進行表格對比&#xff0c;選中…

企業智能制造賦能的環境條件為什么重要?需要準備什么樣的環境?

在全球制造業不斷演進的今天&#xff0c;智能制造已經成為推動行業創新和轉型的關鍵力量。它不僅代表了技術的革新&#xff0c;更是企業管理模式和運營思路的全面升級。然而&#xff0c;智能制造的落地實施并非一蹴而就&#xff0c;它需要企業在環境條件上做好充分的準備&#…

jail內部ubuntu apt升級失敗問題解決-Dynamic MMap ran out of room

在FreeBSD jail 里安裝啟動Ubuntu jammy系統&#xff0c;每次裝好執行jexec ubjammy sh進入Ubuntu系統后&#xff0c;執行apt update報錯。 這個問題困惑了好久&#xff0c;突然有一天仔細去看報錯信息&#xff0c;查看了(man 5 apt.conf) &#xff0c;才搞定問題。簡單來說就是…

Mybatis攔截器介紹及其應用

Mybatis攔截器介紹及其應用 1、介紹 Mybatis攔截器設計的初衷就是為了供用戶在某些時候可以實現自己的邏輯而不必去動Mybatis固有的邏輯。通過Mybatis攔截器我們可以攔截某些方法的調用&#xff0c;我們可以選擇在這些被攔截的方法執行前后加上某些邏輯&#xff0c;也可以在執…

Pycharm與Gitlab交互

環境準備 1、下載配置好本地Git 2、配置Pycharm上的Git 3、gitlab賬號 Gitlab配置 Gitlab配置中文 賬號》設置》偏好設置》簡體中文 創建項目 命令行操作 打開項目會展示以下步驟 在pycharm克隆gitlab的項目 通過菜單欄 1、在PyCharm的頂部菜單欄中&#xff0c;選擇“V…