算法(九)希爾排序

文章目錄

  • 希爾排序簡介
  • 代碼實現

希爾排序簡介

  • 希爾排序(shell sort)選定一個小于N(數列長度)的整數gap作為第一增量,然后將所有距離為gap的元素分成一組,然后對每一組的元素進行插入排序。
  • 然后再取一個比前一個增量小的整數作為增量,重復上面的步驟操作…
  • 當增量大小減少到1時候,就相當于對整個序列再進行一次插入排序,然后排序完成。

代碼實現

package com.xxliao.algorithms.sort.shell_sort;/*** @author xxliao* @description: 希爾排序* @date 2024/5/30 21:44*/
public class ShellSort {public static void main(String[] args) {int[] array = {1,6,2,6,8,3,8,3,9,3,4,6,56,8};System.out.print("排序前:");printArray(array);sort(array);System.out.print("排序后:");printArray(array);}/*** @description  希爾排序* @author  xxliao* @date  2024/5/30 21:46*/public static void sort(int[] array) {// 定義gap,初始等于lengthint gap = array.length;while(gap > 1) {gap = gap / 2;// 單次gap排序for (int i = 0; i < array.length - gap; i++) {int end = i;int nextItem = array[end+gap];while(end >= 0) {if(array[end] > nextItem) {// 前面的值比后面大,換到后面位置去array[end+gap] = array[end];end = end - gap;// end小于gap時候是退出里層循環,end大于gap的時候是進行下一次的輪詢}else {// 前面的值小于等于后面的值,不用替換break;}}array[end+gap] = nextItem;}}}/*** @description  打印數組* @author  xxliao* @date  2024/5/30 21:47*/public static void printArray(int[] array) {for (int i = 0; i <= array.length - 1; i++) {System.out.print(array[i]+" ");}System.out.println();}
}

演示結果:
在這里插入圖片描述

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

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

相關文章

(1+X)Java程序設計高級(一)

Throwable&#xff1a;異常的基類&#xff0c;所有異常都繼承自 java.lang.Throwable 類&#xff0c;Throwable 類有兩個直接子類&#xff1a;Error 類和 Exception 類。Error&#xff1a;是 Java 應用程序本身無法恢復的嚴重錯誤&#xff0c;應用程序不需要捕獲、處理這些嚴重…

7.1 Go 錯誤的概念

&#x1f49d;&#x1f49d;&#x1f49d;歡迎蒞臨我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里可以感受到一份輕松愉快的氛圍&#xff0c;不僅可以獲得有趣的內容和知識&#xff0c;也可以暢所欲言、分享您的想法和見解。 推薦:「stormsha的主頁」…

【SQL每日一練】查詢二進制樹節點

文章目錄 題目一、題析二、題解1.MySQL/SqlServer2.Oracle 題目 有一個表BST&#xff0c;其中包含兩列&#xff1a;N和P&#xff0c;其中N表示二進制樹中節點的值&#xff0c;P是N的父級。 編寫一個查詢&#xff0c;以查找按節點值排序的二進制樹的節點類型。為每個節點輸出以…

迅狐跨境電商系統源碼:技術棧與多端集成

隨著全球化貿易的不斷深入&#xff0c;跨境電商系統源碼成為了連接不同國家和地區消費者與商家的重要橋梁。本文將探討跨境電商系統源碼的技術棧以及如何通過多端集成來提升用戶體驗。 技術棧概覽 跨境電商系統源碼的技術棧是構建高效、穩定平臺的基礎。以下是構建跨境電商系…

IP65 IP45 IP68等等數字防護等級

第一個數字的代表意義 &#xff1a; 0 表示無防護 &#xff0c;對外界的人或物無特殊之防護 1. 表示防止大于50mm的固體物體侵入 &#xff0c;防止人體&#xff08;如手掌&#xff09;因意外而接觸&#xff0c;內部之零件。防止較大尺寸&#xff08;直徑大于50mm&#xff09;的…

Oracle數據塊如何存儲真實數據

上周休假了幾天,頹廢了,沒有輸出。今天寫一點內容。 先拋出一個問題。表中的數據在Oracle數據塊中是如何存儲的呢?今天簡單說一下這個問題。通常數據庫中的表會存儲字符,數字,日期 這3種常見的數據類型。下面的例子就用這3種數據類型作說明 首先,Oracle數據塊底層存儲這…

Github 2024-05-31開源項目日報 Top10

根據Github Trendings的統計,今日(2024-05-31統計)共有10個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量Python項目4TypeScript項目3Jupyter Notebook項目2Vue項目1Cuda項目1Elixir項目1簡單、純凈的C/CUDA中的LLM培訓 創建周期:3 天開發語言:Cuda…

OpenCV中的圓形標靶檢測——背景概述

圓形標靶 如下圖所示,相機標定中我們使用帶有固定間距圖案陣列的平板,來得到高精度的標靶像素坐標,進而計算得到相機的內參、畸變系數,相機之間的變換關系,和相機與世界坐標系的變換關系(即外參)。 不過標靶的形式多樣,從圖案類型來看常見的有棋盤格、圓形標靶…

自然語言處理(NLP)神經網絡的數據預處理步驟

1. 文本清理&#xff08;Text Cleaning&#xff09; 目的&#xff1a;去除文本中的噪音和無關內容&#xff0c;確保輸入數據的質量和一致性。 方法&#xff1a; 去除標點符號&#xff1a;刪除文本中的標點符號&#xff08;視任務需求&#xff0c;某些標點符號可能保留&#…

音視頻開發13 FFmpeg 音頻 相關格式分析 -- AAC ADTS格式分析

這一節&#xff0c;我們學習常用的音頻的格式 AAC&#xff0c;重點是掌握 AAC的傳輸格式 ADTS 頭部的信息&#xff0c;目的是 &#xff1a; 當音頻數據有問題的時候&#xff0c;如果是AAC的編碼&#xff0c;在分析 頭部信息的時候能夠根據頭部信息 判斷問題是否出現在 頭部。 A…

今天來講講,抖音小店商品的上架流程以及優化細節~

大家好&#xff0c;我是噴火龍。 做抖音小店選品選好之后&#xff0c;優化上架商品也是很重要的&#xff0c;也有很多需要注意的細節&#xff0c;今天就來給大家講講。 首先&#xff0c;軟件采集&#xff0c;大致分為七步。 1. 以抖精靈為例&#xff0c;注冊賬號登錄&#x…

到無窮大和更遠,用分形更好

文章目錄 一、說明二、分形到底是什么&#xff1f;三、更多更深刻的四、引進無窮小會產生什么樣的怪事&#xff1f;五、希爾伯特曲線六、還有什么有趣的要補充的嗎&#xff1f; 一、說明 ???????數學領域有太多有趣的領域&#xff0c;領域我特別感興趣。這是一個奇妙的…

orm 查詢

問題 rayon,city 地區和市 地區不會空 市可能會空 job_name 工作名稱 可能會空 envalid_date 有效期間 一天 一個星期 一個月 不限 四種 offset 分頁的每次獲取20條數據 在ORM&#xff08;對象關系映射&#xff09;查詢中&#xff0c;您需要根據提…

代碼隨想錄算法訓練營day41 | 509. 斐波那契數、70. 爬樓梯、746. 使用最小花費爬樓梯

理論基礎 動態規劃中每一個狀態一定是由上一個狀態推導出來的&#xff0c;這一點就區分于貪心&#xff0c;貪心沒有狀態推導&#xff0c;而是從局部直接選最優的 動態規劃的解題步驟 確定dp數組&#xff08;dp table&#xff09;以及下標的含義確定遞推公式dp數組如何初始化確定…

怎么看自己電腦的配置?提升電腦的使用效率

了解自己電腦的配置是非常重要的&#xff0c;它可以幫助您了解電腦的性能水平&#xff0c;從而更好地選擇適合的軟件和游戲&#xff0c;或者進行系統升級和維護。然而&#xff0c;許多用戶可能不知道怎么看自己電腦的配置信息。本文將介紹三種簡單的方法&#xff0c;幫助您輕松…

android studio修改字體大小

android studio修改菜單欄、工具欄字體大小 android studio修改編輯框字體大小

常見制氮機的規格的及其特點介紹

制氮機根據其產氣量、應用領域和設計特點&#xff0c;可以分為多種規格&#xff0c;滿足不同行業的具體需求。以下是一些常見制氮機的規格的及其特點介紹&#xff1a; 制氮機的規格通常以其每小時制氮量進行分類。常見的規格有10L制氮機、50L制氮機、100L制氮機、500L制氮機以及…

復習leetcode第二題:兩數相加

本文會給出筆者自己的解答&#xff08;代碼較為冗余&#xff0c;其實就是屎山代碼&#xff09;以及優秀代碼的解析 下圖是題目 解法1&#xff08;筆者所使用的辦法&#xff09;&#xff1a; 解題思路&#xff1a; 以下思路是基于示例1&#xff08;上圖&#xff09;思考的 步驟…

2024年終端安全管理系統最新排名(2024終端安全管理軟件TOP5)

在2024年&#xff0c;隨著企業數字化轉型的加速和網絡安全威脅的日益嚴峻&#xff0c;終端安全管理系統的重要性愈發凸顯。終端作為企業數據交互的關鍵節點&#xff0c;其安全性直接關系到企業的運營和數據的完整性。因此&#xff0c;各大終端安全管理系統廠商紛紛推出新的產品…

基于Vue+Node.js的購物網站設計與實現-計算機畢業設計源碼28500

摘 要 近年來&#xff0c;隨著移動互聯網的快速發展&#xff0c;電子商務越來越受到網民們的歡迎&#xff0c;電子商務對國家經濟的發展也起著越來越重要的作用。簡單的流程、便捷可靠的支付方式、快捷暢通的物流快遞、安全的信息保護都使得電子商務越來越贏得網民們的青睞。現…