Java中集中常見的算法

以下是對選擇排序、冒泡排序和插入排序的理解及代碼實現

選擇排序

理解:它通過不斷地從待排序元素中選擇最小(或最大)元素,并將其放置在已排序序列的一端。

代碼實現:

public class SelectionSort {public static void selectionSort(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {int minIndex = i;for (int j = i + 1; j < arr.length; j++) {if (arr[j] < arr[minIndex]) {minIndex = j;}}if (minIndex!= i) {int temp = arr[i];arr[i] = arr[minIndex];arr[minIndex] = temp;}}}public static void main(String[] args) {int[] arr = {12, 11, 13, 5, 6};selectionSort(arr);for (int num : arr) {System.out.print(num + " ");}}
}

冒泡排序

理解:它通過反復比較相鄰元素并交換位置,將最大的元素逐步“冒泡”到數組末尾。

public class BubbleSort {public static void bubbleSort(int[] arr) {for (int i = 0; i < arr.length - 1; i++) {for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}public static void main(String[] args) {int[] arr = {64, 34, 25, 12, 22, 11, 90};bubbleSort(arr);for (int num : arr) {System.out.print(num + " ");}}
}

插入排序

理解:它逐個將元素插入已排序的部分,以達到排序的目的。

public class InsertionSort {public static void insertionSort(int[] arr) {for (int i = 1; i < arr.length; i++) {int key = arr[i];int j = i - 1;while (j >= 0 && arr[j] > key) {arr[j + 1] = arr[j];j = j - 1;}arr[j + 1] = key;}}public static void main(String[] args) {int[] arr = {12, 11, 13, 5, 6};insertionSort(arr);for (int num : arr) {System.out.print(num + " ");}}
}

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

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

相關文章

final、const、readonly關鍵字在不同語言中代表著什么

一、Java 1.被final修飾的類不能被繼承。 2.被final修飾的方法不能被重寫。 被 final 修飾的類中所有的成員方法都會隱式的定義為 final 方法。 若父類中 final 方法的訪問權限為 private &#xff0c;則子類中不能直接繼承該方法。此時可以在子類中定義相同方法名的函數&…

【操作系統期末速成】EP06 | 學習筆記(基于五道口一只鴨)

文章目錄 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文&#xff1a;??????2.1 考點十四&#xff1a;同步互斥的基本概念2.2 考點十五&#xff1a;實現臨界區互斥的基本方法2.3 考點十六&#xff1a;信號量的含義及常用信號量 一、前言&#x1f680;&#x1…

品牌推廣的三個階段與核心內容,一篇文章全掌握!

在競爭激烈的市場環境中&#xff0c;品牌推廣是企業成功的關鍵。精心策劃的推廣策略能夠幫助企業在消費者心中樹立獨特的品牌形象&#xff0c;進而促進銷售增長。 作為一家手工酸奶品牌的創始人&#xff0c;目前全國也復制了100多家門店&#xff0c;我理解的品牌推廣分為3個階…

操作系統概論(二)

一、單項選擇題(本大題共20小題&#xff0c;每小題1分&#xff0c;共20分) 在每小題列出的四個備選項中只有一個選項是符合題目要求的&#xff0c;請將其代碼填寫在題后的括號內。錯選、多選或未選均無分。 1&#xff0e;操作員接口是操作系統為用戶提供的使用計算機系統的手…

Vitis IDE 艱難切換--從傳統 Vitis GUI 到 2024.1 統一軟件界面

目錄 1. 簡介 2. 界面展示 2.1 啟動 2.2 Flow Navigator 2.1.1 C Simulation Dialog 2.1.2 C Synthesis 2.1.3 C/RTL Co-simulation 2.1.4 Implementation 2.1.5 Package 3. C Synthesis 詳解 3.1 Classic Configuration Settings 3.1.1 config_array_partition 3…

MySQL進階:存儲過程和函數

存儲過程和函數 1. 簡介2. 創建存儲過程使用MySQL工作臺創建存儲過程 3. 刪除存儲過程4. 參數帶默認值的參數參數驗證輸出參數 5. 變量6. 函數7. 其他約定 1. 簡介 存儲過程三大作用&#xff1a; 儲存和管理SQL代碼&#xff08;置于數據庫中&#xff0c;與應用層分離&#xf…

【力扣 28】找出字符串中第一個匹配項的下標 C++題解(字符串匹配)

給你兩個字符串 haystack 和 needle &#xff0c;請你在 haystack 字符串中找出 needle 字符串的第一個匹配項的下標&#xff08;下標從 0 開始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;則返回 -1 。 示例 1&#xff1a; 輸入&#xff1a;haystack “s…

(13)DroneCAN 適配器節點(二)

文章目錄 前言 2 固件 2.1 基于F103 2.2 基于F303 2.3 基于F431 3 ArduPilot固件DroneCAN設置 3.1 f303-通用設置示例 4 DroneCAN適配器節點 前言 這些節點允許現有的 ArduPilot 支持的外圍設備作為 DroneCAN 或 MSP 設備適應 CAN 總線。這也允許擴展自動駕駛儀硬件的…

隨機文本生成器

目錄 開頭程序程序的流程圖程序打印的效果(不必細看&#xff0c;因為字符太多)例1例2例3 結尾 開頭 大家好&#xff0c;我叫這是我58。看&#xff01;這下面有一個程序。 程序 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <random> #includ…

快遞物流倉庫管理系統java項目springboot和vue的前后端分離系統java課程設計java畢業設計

文章目錄 快遞物流倉庫管理系統一、項目演示二、項目介紹三、部分功能截圖四、部分代碼展示五、底部獲取項目源碼&#xff08;9.9&#xffe5;帶走&#xff09; 快遞物流倉庫管理系統 一、項目演示 快遞物流倉庫管理系統 二、項目介紹 語言: Java 數據庫&#xff1a;MySQL 前…

寶塔安裝rabbitMQ實戰

服務器環境說明 阿里云服務器、寶塔、centos7 一、下載erlang 原因&#xff1a;RabbitMQ服務端代碼是使用并發式語言Erlang編寫的&#xff0c;安裝Rabbit MQ的前提是安裝Erlang。 下載地址&#xff1a;http://www.erlang.org/downloads 下載對應的版本&…

山東省著名烈士孫善師孫善帥故居布展喜添新篇

人海信息網山東訊&#xff08;張春兄、馮愛云&#xff09; “……他們以鋼鐵般的意志&#xff0c;堅守共產黨員的使命&#xff0c;他們就是濼口九烈士的孫善師孫善帥兄弟&#xff01;”6月28日&#xff0c;對于山東省著名烈士孫善師孫善帥故居來說&#xff0c;又是一個不平凡的…

LabVIEW電壓電流實時監測系統

開發了一種基于LabVIEW和研華&#xff08;Advantech&#xff09;數據采集卡的電壓電流實時監測系統&#xff0c;通過高效的數據采集和處理&#xff0c;為工業和科研用戶提供高精度、實時的電壓電流監測解決方案。系統采用研華USB-4711A數據采集卡&#xff0c;結合LabVIEW編程環…

AI論文速讀 | 2024[KDD]自適應時空圖神經網絡中圖中獎彩票的預訓練識別

題目&#xff1a;Pre-Training Identification of Graph Winning Tickets in Adaptive Spatial-Temporal Graph Neural Networks 作者&#xff1a;Wenying Duan, Tianxiang Fang, Hong Rao, Xiaoxi He 機構&#xff1a;南昌大學&#xff0c;澳門大學 arXiv網址&#xff1a;h…

Python數據分析-股票分析和可視化(深證指數)

一、內容簡介 股市指數作為衡量股市整體表現的重要工具&#xff0c;不僅反映了市場的即時狀態&#xff0c;也提供了經濟健康狀況的關鍵信號。在全球經濟體系中&#xff0c;股市指數被廣泛用于預測經濟活動&#xff0c;評估投資環境&#xff0c;以及制定財政和貨幣政策。在中國…

IEEE JSTSP綜述:從信號處理領域分析視觸覺傳感器的研究

觸覺傳感器是機器人系統的重要組成部分&#xff0c;雖然與視覺相比觸覺具有較小的感知面積&#xff0c;但卻可以提供機器人與物體交互過程中更加真實的物理信息。 視覺觸覺傳感是一種分辨率高、成本低的觸覺感知技術&#xff0c;被廣泛應用于分類、抓取、操作等領域中。近期&a…

R-CNN和YOLO的各自優缺點

R-CNN&#xff08;包括其改進版本如Faster R-CNN和Mask R-CNN&#xff09;與YOLO&#xff08;You Only Look Once&#xff09;是兩種常用的物體檢測算法&#xff0c;它們各自有不同的優缺點&#xff0c;適用于不同的應用場景和需求。 R-CNN 系列 優點&#xff1a; 高精度&am…

如何跑起來一個前后端項目

后端部署 第一步配置自己的maven 第二步優先導入自己本地jar包當本地沒有在從遠程下載 第三步找到配置文件 第四步成功運行后端部署完畢 前端部署 第一步看看項目node_modules有沒有文件如果有就是已經安裝好了對應的依賴&#xff0c;沒有執行npm install 第二步運行即可

決策樹劃分屬性依據

劃分依據 基尼系數基尼系數的應用信息熵信息增益信息增益的使用信息增益準則的局限性 最近在學習項目的時候經常用到隨機森林&#xff0c;所以對決策樹進行探索學習。 基尼系數 基尼系數用來判斷不確定性或不純度&#xff0c;數值范圍在0~0.5之間&#xff0c;數值越低&#x…

【知識學習】Unity3D中Scriptable Render Pipeline的概念及使用方法示例

Unity3D中的Scriptable Render Pipeline&#xff08;SRP&#xff09;是一種高度可定制的渲染管線框架&#xff0c;允許開發者完全控制渲染流程&#xff0c;以適應不同的渲染需求和硬件平臺。SRP使得開發者可以編寫自己的渲染邏輯&#xff0c;包括攝像機管理、渲染設置、光照處理…