国产中文字幕在线视频,.com久久久,亚洲免费在线播放视频,神九影院电视剧免费观看,奇米在线888,天天网综合,久久免费视频观看

仿網(wǎng)站教程網(wǎng)站域名要怎樣規(guī)劃

鶴壁市浩天電氣有限公司 2026/01/22 08:20:35
仿網(wǎng)站教程,網(wǎng)站域名要怎樣規(guī)劃,網(wǎng)站安全需做哪些監(jiān)測(cè),做網(wǎng)站1200排序算法#xff08;sorting algorithm#xff09;用于對(duì)一組數(shù)據(jù)按照特定順序進(jìn)行排列。排序算法有著廣泛的應(yīng)用#xff0c;因?yàn)橛行驍?shù)據(jù)通常能夠被更高效地查找、分析和處理。運(yùn)行快、原地、穩(wěn)定、自適應(yīng)、通用性好。顯然#xff0c;迄今為止尚未發(fā)現(xiàn)兼具以上所有特性的排…排序算法sorting algorithm用于對(duì)一組數(shù)據(jù)按照特定順序進(jìn)行排列。排序算法有著廣泛的應(yīng)用因?yàn)橛行驍?shù)據(jù)通常能夠被更高效地查找、分析和處理。運(yùn)行快、原地、穩(wěn)定、自適應(yīng)、通用性好。顯然迄今為止尚未發(fā)現(xiàn)兼具以上所有特性的排序算法。因此在選擇排序算法時(shí)需要根據(jù)具體的數(shù)據(jù)特點(diǎn)和問題需求來決定。1選擇排序選擇排序selection sort的工作原理非常簡單開啟一個(gè)循環(huán)每輪從未排序區(qū)間選擇最小的元素將其放到已排序區(qū)間的末尾。/* 選擇排序 */voidselectionSort(int[]nums){intnnums.length;// 外循環(huán)未排序區(qū)間為 [i, n-1]for(inti0;in-1;i){// 內(nèi)循環(huán)找到未排序區(qū)間內(nèi)的最小元素intki;for(intji1;jn;j){if(nums[j]nums[k])kj;// 記錄最小元素的索引}// 將該最小元素與未排序區(qū)間的首個(gè)元素交換inttempnums[i];nums[i]nums[k];nums[k]temp;}}2冒泡排序通過連續(xù)地比較與交換相鄰元素實(shí)現(xiàn)排序。這個(gè)過程就像氣泡從底部升到頂部一樣因此得名冒泡排序。/* 冒泡排序 */voidbubbleSort(int[]nums){// 外循環(huán)未排序區(qū)間為 [0, i]for(intinums.length-1;i0;i--){// 內(nèi)循環(huán)將未排序區(qū)間 [0, i] 中的最大元素交換至該區(qū)間的最右端for(intj0;ji;j){if(nums[j]nums[j1]){// 交換 nums[j] 與 nums[j 1]inttmpnums[j];nums[j]nums[j1];nums[j1]tmp;}}}}3插入排序是一種簡單的排序算法它的工作原理與手動(dòng)整理一副牌的過程非常相似。具體來說我們?cè)谖磁判騾^(qū)間選擇一個(gè)基準(zhǔn)元素將該元素與其左側(cè)已排序區(qū)間的元素逐一比較大小并將該元素插入到正確的位置。/* 插入排序 */voidinsertionSort(int[]nums){// 外循環(huán)已排序區(qū)間為 [0, i-1]for(inti1;inums.length;i){intbasenums[i],ji-1;// 內(nèi)循環(huán)將 base 插入到已排序區(qū)間 [0, i-1] 中的正確位置while(j0nums[j]base){nums[j1]nums[j];// 將 nums[j] 向右移動(dòng)一位j--;}nums[j1]base;// 將 base 賦值到正確位置}}4快速排序是一種基于分治策略的排序算法運(yùn)行高效應(yīng)用廣泛。核心操作是“哨兵劃分”其目標(biāo)是選擇數(shù)組中的某個(gè)元素作為“基準(zhǔn)數(shù)”將所有小于基準(zhǔn)數(shù)的元素移到其左側(cè)而大于基準(zhǔn)數(shù)的元素移到其右側(cè)。/* 元素交換 */voidswap(int[]nums,inti,intj){inttmpnums[i];nums[i]nums[j];nums[j]tmp;}/* 哨兵劃分 */intpartition(int[]nums,intleft,intright){// 以 nums[left] 為基準(zhǔn)數(shù)intileft,jright;while(ij){while(ijnums[j]nums[left])j--;// 從右向左找首個(gè)小于基準(zhǔn)數(shù)的元素while(ijnums[i]nums[left])i;// 從左向右找首個(gè)大于基準(zhǔn)數(shù)的元素swap(nums,i,j);// 交換這兩個(gè)元素}swap(nums,i,left);// 將基準(zhǔn)數(shù)交換至兩子數(shù)組的分界線returni;// 返回基準(zhǔn)數(shù)的索引}5歸并排序merge sort是一種基于分治策略的排序算法包含“劃分”和“合并”階段。劃分階段通過遞歸不斷地將數(shù)組從中點(diǎn)處分開將長數(shù)組的排序問題轉(zhuǎn)換為短數(shù)組的排序問題。合并階段當(dāng)子數(shù)組長度為 1 時(shí)終止劃分開始合并持續(xù)地將左右兩個(gè)較短的有序數(shù)組合并為一個(gè)較長的有序數(shù)組直至結(jié)束。/* 合并左子數(shù)組和右子數(shù)組 */voidmerge(int[]nums,intleft,intmid,intright){// 左子數(shù)組區(qū)間為 [left, mid], 右子數(shù)組區(qū)間為 [mid1, right]// 創(chuàng)建一個(gè)臨時(shí)數(shù)組 tmp 用于存放合并后的結(jié)果int[]tmpnewint[right-left1];// 初始化左子數(shù)組和右子數(shù)組的起始索引intileft,jmid1,k0;// 當(dāng)左右子數(shù)組都還有元素時(shí)進(jìn)行比較并將較小的元素復(fù)制到臨時(shí)數(shù)組中while(imidjright){if(nums[i]nums[j])tmp[k]nums[i];elsetmp[k]nums[j];}// 將左子數(shù)組和右子數(shù)組的剩余元素復(fù)制到臨時(shí)數(shù)組中while(imid){tmp[k]nums[i];}while(jright){tmp[k]nums[j];}// 將臨時(shí)數(shù)組 tmp 中的元素復(fù)制回原數(shù)組 nums 的對(duì)應(yīng)區(qū)間for(k0;ktmp.length;k){nums[leftk]tmp[k];}}/* 歸并排序 */voidmergeSort(int[]nums,intleft,intright){// 終止條件if(leftright)return;// 當(dāng)子數(shù)組長度為 1 時(shí)終止遞歸// 劃分階段intmidleft(right-left)/2;// 計(jì)算中點(diǎn)mergeSort(nums,left,mid);// 遞歸左子數(shù)組mergeSort(nums,mid1,right);// 遞歸右子數(shù)組// 合并階段merge(nums,left,mid,right);}6堆排序heap sort是一種基于堆數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的高效排序算法。我們可以利用已經(jīng)學(xué)過的“建堆操作”和“元素出堆操作”實(shí)現(xiàn)堆排序。輸入數(shù)組并建立小頂堆此時(shí)最小元素位于堆頂。不斷執(zhí)行出堆操作依次記錄出堆元素即可得到從小到大排序的序列。/* 堆的長度為 n 從節(jié)點(diǎn) i 開始從頂至底堆化 */voidsiftDown(int[]nums,intn,inti){while(true){// 判斷節(jié)點(diǎn) i, l, r 中值最大的節(jié)點(diǎn)記為 maintl2*i1;intr2*i2;intmai;if(lnnums[l]nums[ma])mal;if(rnnums[r]nums[ma])mar;// 若節(jié)點(diǎn) i 最大或索引 l, r 越界則無須繼續(xù)堆化跳出if(mai)break;// 交換兩節(jié)點(diǎn)inttempnums[i];nums[i]nums[ma];nums[ma]temp;// 循環(huán)向下堆化ima;}}/* 堆排序 */voidheapSort(int[]nums){// 建堆操作堆化除葉節(jié)點(diǎn)以外的其他所有節(jié)點(diǎn)for(intinums.length/2-1;i0;i--){siftDown(nums,nums.length,i);}// 從堆中提取最大元素循環(huán) n-1 輪for(intinums.length-1;i0;i--){// 交換根節(jié)點(diǎn)與最右葉節(jié)點(diǎn)交換首元素與尾元素inttmpnums[0];nums[0]nums[i];nums[i]tmp;// 以根節(jié)點(diǎn)為起點(diǎn)從頂至底進(jìn)行堆化siftDown(nums,i,0);}}7桶排序bucket sort是分治策略的一個(gè)典型應(yīng)用。它通過設(shè)置一些具有大小順序的桶每個(gè)桶對(duì)應(yīng)一個(gè)數(shù)據(jù)范圍將數(shù)據(jù)平均分配到各個(gè)桶中然后在每個(gè)桶內(nèi)部分別執(zhí)行排序最終按照桶的順序?qū)⑺袛?shù)據(jù)合并。/* 桶排序 */voidbucketSort(float[]nums){// 初始化 k n/2 個(gè)桶預(yù)期向每個(gè)桶分配 2 個(gè)元素intknums.length/2;ListListFloatbucketsnewArrayList();for(inti0;ik;i){buckets.add(newArrayList());}// 1. 將數(shù)組元素分配到各個(gè)桶中for(floatnum:nums){// 輸入數(shù)據(jù)范圍為 [0, 1)使用 num * k 映射到索引范圍 [0, k-1]inti(int)(num*k);// 將 num 添加進(jìn)桶 ibuckets.get(i).add(num);}// 2. 對(duì)各個(gè)桶執(zhí)行排序for(ListFloatbucket:buckets){// 使用內(nèi)置排序函數(shù)也可以替換成其他排序算法Collections.sort(bucket);}// 3. 遍歷桶合并結(jié)果inti0;for(ListFloatbucket:buckets){for(floatnum:bucket){nums[i]num;}}}8計(jì)數(shù)排序counting sort通過統(tǒng)計(jì)元素?cái)?shù)量來實(shí)現(xiàn)排序通常應(yīng)用于整數(shù)數(shù)組。/* 計(jì)數(shù)排序 */// 完整實(shí)現(xiàn)可排序?qū)ο蟛⑶沂欠€(wěn)定排序voidcountingSort(int[]nums){// 1. 統(tǒng)計(jì)數(shù)組最大元素 mintm0;for(intnum:nums){mMath.max(m,num);}// 2. 統(tǒng)計(jì)各數(shù)字的出現(xiàn)次數(shù)// counter[num] 代表 num 的出現(xiàn)次數(shù)int[]counternewint[m1];for(intnum:nums){counter[num];}// 3. 求 counter 的前綴和將“出現(xiàn)次數(shù)”轉(zhuǎn)換為“尾索引”// 即 counter[num]-1 是 num 在 res 中最后一次出現(xiàn)的索引for(inti0;im;i){counter[i1]counter[i];}// 4. 倒序遍歷 nums 將各元素填入結(jié)果數(shù)組 res// 初始化數(shù)組 res 用于記錄結(jié)果intnnums.length;int[]resnewint[n];for(intin-1;i0;i--){intnumnums[i];res[counter[num]-1]num;// 將 num 放置到對(duì)應(yīng)索引處counter[num]--;// 令前綴和自減 1 得到下次放置 num 的索引}// 使用結(jié)果數(shù)組 res 覆蓋原數(shù)組 numsfor(inti0;in;i){nums[i]res[i];}}9基數(shù)排序radix sort的核心思想與計(jì)數(shù)排序一致也通過統(tǒng)計(jì)個(gè)數(shù)來實(shí)現(xiàn)排序。在此基礎(chǔ)上基數(shù)排序利用數(shù)字各位之間的遞進(jìn)關(guān)系依次對(duì)每一位進(jìn)行排序從而得到最終的排序結(jié)果。/* 獲取元素 num 的第 k 位其中 exp 10^(k-1) */intdigit(intnum,intexp){// 傳入 exp 而非 k 可以避免在此重復(fù)執(zhí)行昂貴的次方計(jì)算return(num/exp)%10;}/* 計(jì)數(shù)排序根據(jù) nums 第 k 位排序 */voidcountingSortDigit(int[]nums,intexp){// 十進(jìn)制的位范圍為 0~9 因此需要長度為 10 的桶數(shù)組int[]counternewint[10];intnnums.length;// 統(tǒng)計(jì) 0~9 各數(shù)字的出現(xiàn)次數(shù)for(inti0;in;i){intddigit(nums[i],exp);// 獲取 nums[i] 第 k 位記為 dcounter[d];// 統(tǒng)計(jì)數(shù)字 d 的出現(xiàn)次數(shù)}// 求前綴和將“出現(xiàn)個(gè)數(shù)”轉(zhuǎn)換為“數(shù)組索引”for(inti1;i10;i){counter[i]counter[i-1];}// 倒序遍歷根據(jù)桶內(nèi)統(tǒng)計(jì)結(jié)果將各元素填入 resint[]resnewint[n];for(intin-1;i0;i--){intddigit(nums[i],exp);intjcounter[d]-1;// 獲取 d 在數(shù)組中的索引 jres[j]nums[i];// 將當(dāng)前元素填入索引 jcounter[d]--;// 將 d 的數(shù)量減 1}// 使用結(jié)果覆蓋原數(shù)組 numsfor(inti0;in;i)nums[i]res[i];}/* 基數(shù)排序 */voidradixSort(int[]nums){// 獲取數(shù)組的最大元素用于判斷最大位數(shù)intmInteger.MIN_VALUE;for(intnum:nums)if(numm)mnum;// 按照從低位到高位的順序遍歷for(intexp1;expm;exp*10){// 對(duì)數(shù)組元素的第 k 位執(zhí)行計(jì)數(shù)排序// k 1 - exp 1// k 2 - exp 10// 即 exp 10^(k-1)countingSortDigit(nums,exp);}}
版權(quán)聲明: 本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

如何進(jìn)行網(wǎng)站設(shè)計(jì)wordpress 翻譯工具

如何進(jìn)行網(wǎng)站設(shè)計(jì),wordpress 翻譯工具,網(wǎng)站怎么上傳模板,桂林網(wǎng)站建設(shè)內(nèi)容Stretchly自動(dòng)啟動(dòng)完整配置指南#xff1a;打造永不間斷的健康守護(hù)系統(tǒng) 【免費(fèi)下載鏈接】stretchly T

2026/01/21 16:10:01

柳州市建設(shè)中心網(wǎng)站建筑網(wǎng)站搜圖

柳州市建設(shè)中心網(wǎng)站,建筑網(wǎng)站搜圖,特殊教育學(xué)校網(wǎng)站建設(shè)方案,凡科網(wǎng)之前做的網(wǎng)站在哪看你是否也下載過那些號(hào)稱“免費(fèi)音效大全”的壓縮包#xff0c;解壓后發(fā)現(xiàn)聲音要么充滿底噪、頻段單薄#xff0c;要么音

2026/01/21 19:33:01

3g門戶網(wǎng)站官網(wǎng)建一個(gè)優(yōu)化網(wǎng)站多少錢

3g門戶網(wǎng)站官網(wǎng),建一個(gè)優(yōu)化網(wǎng)站多少錢,seo3立體構(gòu)型,電子商務(wù)網(wǎng)站開發(fā)過程論文6開發(fā)哭了#xff1a;TOS系統(tǒng)去O卡殼#xff0c;金倉數(shù)據(jù)庫兩周實(shí)現(xiàn)平滑遷移 上周三下午四點(diǎn)#xff0c;測(cè)試組

2026/01/21 16:01:01

湖南營銷型網(wǎng)站建設(shè)黃驊貼吧

湖南營銷型網(wǎng)站建設(shè),黃驊貼吧,網(wǎng)站設(shè)計(jì)流程步驟,摘抄一則新聞為什么說Wan2.2-T2V-5B定義了下一代T2V生產(chǎn)力工具 你有沒有過這樣的經(jīng)歷#xff1f;凌晨兩點(diǎn)#xff0c;為了趕一條短視頻焦頭

2026/01/21 20:02:01

如何制作一個(gè)個(gè)人網(wǎng)站2023新聞熱點(diǎn)摘抄

如何制作一個(gè)個(gè)人網(wǎng)站,2023新聞熱點(diǎn)摘抄,網(wǎng)站沒有做實(shí)名認(rèn)證,wordpress 標(biāo)簽 修改還在為重復(fù)刷副本而頭大嗎#xff1f;每天面對(duì)同樣的日常任務(wù)#xff0c;感覺自己像個(gè)無情的點(diǎn)擊機(jī)器#xf

2026/01/21 16:38:01