排序 -- 計數排序以及對排序的總結

到了這篇文章就說明常見的排序我們就快要講完了,那這篇文章我們就講一下非比較排序--計數排序。


一、非比較排序

1.基本思想

計數排序又稱為鴿巢原理,是對哈希直接定址法的變形應用。 操作步驟:
  • 統計相同元素出現次數
  • 根據統計的結果將序列回收到原來的序列中

?

二、計數排序的特性總結

  • 計數排序在數據范圍集中時,效率很高,但是適用范圍及場景有限。
  • 時間復雜度:O(MAX(N,范圍))
  • 空間復雜度:O(范圍)
  • 穩定性:穩定

?

三、 計數排序

1. 實現思想

計數排序是一種非比較排序,它通過統計數組中每個數據出現的次數,然后根據數據出現的次數和數據的值來重構這個數組,從而將數組排成有序。所以計數排序適合數據范圍相對集中且數據為非負整數的情況。

?

2.?具體實現?

void CountSort(int* a, int n)
{int max = a[0], min = a[0];for (int i = 0; i < n; i++){if (min > a[i]){min = a[i];}if (max < a[i]){max = a[i];}}int range = max - min + 1;int* count = (int*)malloc(sizeof(int) * range);if (count == NULL){perror("malloc fail");return;}memset(count, 0, sizeof(int) * range);// 統計數據出現的次數for (int i = 0; i < n; i++){count[a[i] - min]++;}//排序int j = 0;for (int i = 0; i < range; i++){while (count[i]--){a[j++] = i + min;}}
}

?

四、對于排序的總結

?

?

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

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

相關文章

昇思25天學習打卡營第14天|基于MindNLP的文本解碼原理

基于MindNLP的文本解碼原理 文本解碼 文本解碼是自然語言處理中的一個關鍵步驟,特別是在任務如機器翻譯、文本摘要、自動回復生成等領域。解碼過程涉及將編碼器(如語言模型、翻譯模型等)的輸出轉換為可讀的文本序列。以下是一些常見的文本解碼方法和原理: 1. 自回歸解碼:…

打造屬于你的私人云盤:在 OrangePi AIpro 上搭建個人云盤

隨著數字化時代的到來&#xff0c;數據的存儲和管理變得愈發重要。相比于公共云存儲服務&#xff0c;搭建一個屬于自己的個人云盤不僅能夠更好地保護隱私&#xff0c;還可以更靈活地管理數據。 近期剛好收到了一個 香橙派 AIpro 的開發板&#xff0c;借此機會用來搭建一個屬于…

美股交易相關知識點 持續完善中

美股交易時間 美東時間&#xff1a;除了凌晨 03:50 ~ 04:00 這10分鐘時間不可交易以外&#xff0c;其他時間都是可以交易的。 如果是在香港或者北京時間下交易要區分兩種: 美東夏令時&#xff1a;除了下午 15:50 ~ 16:00 這10分鐘時間不可交易以外&#xff0c;其他時間都是可…

法國工程師IMT聯盟 密碼學及其應用 2022年期末考試

1 密碼學 1.1 問題1 對稱加密&#xff08;密鑰加密) 1.1.1 問題 對稱密鑰la cryptographie symtrique和公開密鑰有哪些優缺點&#xff1f; 1.1.1.1 對稱加密&#xff08;密鑰加密)的優缺點 1.1.1.1.1 優點 加解密速度快encrypt and decrypt&#xff1a;對稱加密算法通常基于…

【vue組件庫搭建06】組件庫構建及npm發包

一、格式化目錄結構 根據以下圖片搭建組件庫目錄 index.js作為入口文件&#xff0c;將所有組件引入&#xff0c;并注冊組件名稱 import { EButton } from "./Button"; export * from "./Button"; import { ECard } from "./Card"; export * fr…

一、MyBatis

一、MyBatis 1、MyBatis簡介 1.1、MyBatis歷史 MyBatis最初是Apache的一個開源項目iBatis, 2010年6月這個項目由Apache Software Foundation遷移到了Google Code。隨著開發團隊轉投Google Code旗下&#xff0c; iBatis3.x正式更名為MyBatis。代碼于2013年11月遷移到Github。…

計算機網絡之無線局域網

1.無線局域網工作方式 工作方式&#xff1a;每臺PC機上有一個無線收發機&#xff08;無線網卡&#xff09;&#xff0c; 它能夠向網絡上的其他PC機發送和接受無線電信號。 與有線以太網相似&#xff0c;無線局域網也是打包方式發送數據的。每塊網卡都有一個永久的、唯一的ID號…

Unity2D - 基本戰斗系統(Battle System Design)

1. 攻擊邏輯 在Entity中初始化兩個變量&#xff0c;因為在每個角色幾乎都擁有攻擊狀態。這兩個變量分別是transform類&#xff0c;接收一個坐標和一個半徑畫一個圓作為攻擊的判定范圍 public Transform attackCheck; public float attackCheckRadius; 為了可視化攻擊范圍&am…

Python的多態

在 Python 中&#xff0c;多態&#xff08;Polymorphism&#xff09;是指不同的對象可以對相同的消息&#xff08;方法調用&#xff09;做出不同的響應。 簡單來說&#xff0c;多態允許使用一個統一的接口來操作不同類型的對象&#xff0c;而這些對象會根據自身的類型來執行相應…

某水利集團晉升體系優化項目成功案例紀實

——通過多元化職業晉升通道&#xff0c;激發員工潛力 【客戶行業】水務行業&#xff1b;水利處理 【問題類型】晉升體系優化&#xff1b;人才管理系統 【客戶背景】 某水利處理集團是國內領先的綜合性水資源管理與水務服務供應商。該集團專注于提供包括原水供應、自來水生…

基于ROS的智能網聯車遠程交互軟件,全UI無需記憶指令,劍指核心原理。

基于ROS的智能網聯車遠程交互軟件&#xff0c;全UI無需記憶指令&#xff0c;劍指核心原理。 服務于中汽恒泰&#xff0c;偉大的項目&#xff0c;希望看官點贊&#xff0c;謝謝~~ 進程&#xff08;節點&#xff09;列表化&#xff0c;參數面板化&#xff0c;實現快速機器人配置…

Linux--V4L2攝像頭驅動框架及UVC淺析

一、前言 對于一個usb攝像頭&#xff0c;它的內核驅動源碼位于/drivers/media/usb/uvc/ 核心層&#xff1a;V4L2_dev.c文件 硬件相關層&#xff1a; uvc_driver.c文件 本篇記錄基于對6.8.8.8內核下vivid-core.c文件&#xff08;虛擬視頻驅動程序&#xff09;的分析&#xff…

推薦系統中Prior Belief的概念(附代碼)

在推薦系統中&#xff0c;先驗信念&#xff08;prior belief&#xff09;是指在沒有觀察到實際數據之前&#xff0c;我們對某些參數或變量的初始假設或預期。這種先驗信念可以幫助模型在數據稀疏或噪聲較多的情況下做出更好的預測。 先驗信念&#xff08;Prior Belief&#xf…

獨立站運營招聘:尋找璀璨之星,開啟運營之旅

尊敬的各位同仁&#xff0c;我乃大家熟知的獨立站長&#xff0c;對于運營獨立站點始終保持著滿腔熱情。今日&#xff0c;我欲與諸位共同探討一熱門議題—獨立站運營招聘。此次招聘不再僅為職位爭奪&#xff0c;更為尋找璀璨之星的探險之旅。 獨立站的靈魂&#xff1a;什么是獨…

Mysql中視圖的使用以及常見運算符的使用示例和優先級

場景 基礎知識回顧&#xff1a;mysql中視圖的基礎使用以及常見運算符的使用示例。 注&#xff1a; 博客&#xff1a;霸道流氓氣質-CSDN博客 實現 Mysql中視圖的使用 視圖的創建 CREATE VIEW stu_view AS SELECT * FROM bus_student; 視圖查詢 SELECT * FROM stu_view;…

澳大利亞媒體發稿:怎樣用圖表提高易讀性?-華媒舍

媒體發稿的可讀性變得尤為重要。讀者們不會再有時間與耐心去閱讀文章繁瑣的文本&#xff0c;他們更喜歡簡潔明了的信息展現形式&#xff0c;在其中圖表是一種極為高效的專用工具。下面我們就詳細介紹怎么使用圖表提高澳大利亞新聞媒體發稿的可讀性&#xff0c;以適應讀者的需要…

java 柵欄(CyclicBarrier)

Java中的柵欄&#xff08;CyclicBarrier&#xff09;是一種用于協調多個線程并發工作的同步輔助類。與CountDownLatch不同&#xff0c;CyclicBarrier允許一組線程相互等待&#xff0c;直到所有線程都到達一個共同的屏障點&#xff08;barrier&#xff09;后&#xff0c;才繼續執…

CSS 【詳解】樣式選擇器(含ID、類、標簽、通配、屬性、偽類、偽元素、Content屬性、子代、后代、兄弟、相鄰兄弟、交集、并集等選擇器)

CSS 樣式選擇器&#xff0c;用于選中頁面中的 html 元素&#xff0c;以便添加 CSS 樣式。 按渲染性能由高到低 依次是&#xff1a; ID 選擇器 #id 通過元素的 id 屬性選中元素&#xff0c;區分大小寫 <p id"p1" >第一段</p>#p1{color: red; }但不推薦使…

【LinuxC語言】手撕Http之處理POST請求

文章目錄 前言聲明POST的組成讀取POST信息讀取消息體長度讀取消息體解析消息體How to use?總結前言 在互聯網的世界中,HTTP協議無疑是最重要的協議之一。它是Web的基礎,支持著我們日常生活中的大部分在線活動。盡管有許多現成的庫可以處理HTTP請求,但了解其底層工作原理是…

全面解析:兒童編程等級考試及其區別

目錄 1. 前言2. 兒童編程等級考試的重要性3. 兒童編程等級考試的特點4. 兒童編程等級考試4.1 非專業級軟件能力認證(CSP-J/S)4.2 GESP編程能力等級認證4.3 青少年編程能力等級測試(CPA)4.4 全國青少年軟件編程等級考試4.5 全國青少年編程能力等級考試(PAAT)1. 前言 近年來…