国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

讀書筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要8[桶排序]

這篇具有很好參考價值的文章主要介紹了讀書筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要8[桶排序]。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

桶排序和歸并排序有那么點點類似,也使用了歸并的思想。大致步驟如下:

  1. 設(shè)置一個定量的數(shù)組當作空桶。
  2. Divide - 從待排序數(shù)組中取出元素,將元素按照一定的規(guī)則塞進對應(yīng)的桶子去。
  3. 對每個非空桶進行排序,通??稍谌厝胪皶r進行插入排序。
  4. Conquer - 從非空桶把元素再放回原來的數(shù)組中。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class BucketSort {

    public static void main(String[] args) {
        int[] arr = {80, 50, 30, 10, 90, 60, 0, 70, 40, 20, 50};
        System.out.println("Original array: " + Arrays.toString(arr));

        bucketSort(arr);

        System.out.println("Sorted array: " + Arrays.toString(arr));
    }

    public static void bucketSort(int[] arr) {
        // 獲取數(shù)組中的最大值和最小值
        int max = getMax(arr);
        int min = getMin(arr);

        // 計算桶的數(shù)量
        int bucketCount = (max - min) / arr.length + 1;

        // 創(chuàng)建桶列表
        List<List<Integer>> buckets = new ArrayList<>(bucketCount);
        for (int i = 0; i < bucketCount; i++) {
            buckets.add(new ArrayList<>());
        }

        // 將數(shù)組中的每個元素放入對應(yīng)的桶中
        for (int num : arr) {
            int index = (num - min) / arr.length;
            buckets.get(index).add(num);
        }

        // 對每個桶中的元素進行排序,并將結(jié)果合并到原數(shù)組中
        int index = 0;
        for (List<Integer> bucket : buckets) {
            Collections.sort(bucket);
            for (int num : bucket) {
                arr[index++] = num;
            }
        }
    }

    private static int getMax(int[] arr) {
        int max = arr[0];
        for (int num : arr) {
            if (num > max) {
                max = num;
            }
        }
        return max;
    }

    private static int getMin(int[] arr) {
        int min = arr[0];
        for (int num : arr) {
            if (num < min) {
                min = num;
            }
        }
        return min;
    }
}

讀書筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要8[桶排序],讀書筆記,排序算法,算法,數(shù)據(jù)結(jié)構(gòu)
(圖網(wǎng),侵刪)文章來源地址http://www.zghlxwxcb.cn/news/detail-801768.html

到了這里,關(guān)于讀書筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要8[桶排序]的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)——排序算法——歸并排序

    數(shù)據(jù)結(jié)構(gòu)——排序算法——歸并排序

    在第二個列表向第一個列表逐個插入的過程中,由于第二個列表已經(jīng)有序,所以后續(xù)插入的元素一定不會在前面插入的元素之前。在逐個插入的過程中,每次插入時,只需要從上次插入的位置開始,繼續(xù)向后尋找插入位置即可。這樣一來,我們最多只需要將兩個有序數(shù)組遍歷

    2024年02月09日
    瀏覽(34)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-插入排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-插入排序

    ?? 個人博客: www.hellocode.top ?? Java知識導(dǎo)航: Java-Navigate ?? CSDN: HelloCode. ?? 知乎 :HelloCode ?? 掘金 :HelloCode ?如有問題,歡迎指正,一起學(xué)習(xí)~~ 插入排序(Insertion Sort)是一種簡單直觀的排序算法,其基本思想是將一個記錄插入到已排好序的有序序列中,直到所有記錄

    2024年02月13日
    瀏覽(25)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-希爾排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-希爾排序

    ?? 個人博客: www.hellocode.top ?? Java知識導(dǎo)航: Java-Navigate ?? CSDN: HelloCode. ?? 知乎 :HelloCode ?? 掘金 :HelloCode ?如有問題,歡迎指正,一起學(xué)習(xí)~~ 希爾排序是一種插入排序的改進版本,旨在解決插入排序在處理大規(guī)模數(shù)據(jù)時的效率問題。通過將數(shù)組分為多個子序列并對

    2024年02月12日
    瀏覽(30)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-冒泡排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-冒泡排序

    ?? 個人博客: www.hellocode.top ?? Java知識導(dǎo)航: Java-Navigate ?? CSDN: HelloCode. ?? 掘金 :HelloCode ?? 知乎 :HelloCode ?如有問題,歡迎指正,一起學(xué)習(xí)~~ 冒泡排序(Bubble Sort)是一種簡單的排序算法,它通過重復(fù)地交換相鄰元素的位置來將最大(或最?。┑脑刂鸩健懊芭荨钡?/p>

    2024年02月14日
    瀏覽(26)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-快速排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-快速排序

    ?? 個人博客: www.hellocode.top ?? Java知識導(dǎo)航: Java-Navigate ?? CSDN: HelloCode. ?? 知乎 :HelloCode ?? 掘金 :HelloCode ?如有問題,歡迎指正,一起學(xué)習(xí)~~ 快速排序(Quick Sort)是一種高效的排序算法,是對冒泡排序的優(yōu)化。它采用分治法(Divide and Conquer)的思想,將待排序序列

    2024年02月13日
    瀏覽(25)
  • 數(shù)據(jù)結(jié)構(gòu)——排序算法之快速排序

    數(shù)據(jù)結(jié)構(gòu)——排序算法之快速排序

    ? ??個人主頁: 日刷百題 系列專欄 : 〖C/C++小游戲〗 〖Linux〗 〖數(shù)據(jù)結(jié)構(gòu)〗 ? 〖C語言〗 ?? 歡迎各位 → 點贊 ??+ 收藏 ??+ 留言 ??? ? ? 快速排序是Hoare于1962年提出的一種二叉樹結(jié)構(gòu)的交換排序方法。 基本思想: 任取待排序元素序列中 的某元素作為基準值,按照

    2024年01月21日
    瀏覽(23)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】排序算法(選擇排序,冒泡排序,插入排序,希爾排序)

    基本概念這了就不浪費時間解釋了,這四種都是很簡單的排序方式,本專欄后續(xù)文章會出歸并排序,計數(shù)排序,快速排序,堆排序,桶排序等排序算法,今天這篇文章中給出選擇排序,冒泡排序,插入排序和希爾排序的實現(xiàn); 如果發(fā)現(xiàn)文章中有錯誤,還請大家指出來,我會非

    2024年02月15日
    瀏覽(97)
  • 數(shù)據(jù)結(jié)構(gòu)與算法-排序算法

    數(shù)據(jù)結(jié)構(gòu)與算法-排序算法

    遞歸將整個函數(shù)的調(diào)用過程 調(diào)用過程 如何在CSDN博客中插入公式和各種符號 類似二叉樹的后續(xù)遍歷 遞歸行為和遞歸行為時間復(fù)雜度的估算 master 公式 : T ( n ) = a × T ( n b ) + O ( n d ) T(n) = a times T (frac{n}) + O(n^d) T ( n ) = a × T ( b n ? ) + O ( n d ) T ( n ) T(n) T ( n ) : 母問題的規(guī)模

    2024年02月15日
    瀏覽(22)
  • 算法 數(shù)據(jù)結(jié)構(gòu) 遞歸插入排序 java插入排序 遞歸求解插入排序算法 如何用遞歸寫插入排序 插入排序動圖 插入排序優(yōu)化 數(shù)據(jù)結(jié)構(gòu)(十)

    算法 數(shù)據(jù)結(jié)構(gòu) 遞歸插入排序 java插入排序 遞歸求解插入排序算法 如何用遞歸寫插入排序 插入排序動圖 插入排序優(yōu)化 數(shù)據(jù)結(jié)構(gòu)(十)

    1. 插入排序(insertion-sort): ????????????????????????????????????????? 是一種簡單直觀的排序算法。它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入 ??? 算法穩(wěn)定性: ?????????????????

    2024年02月09日
    瀏覽(25)
  • 數(shù)據(jù)結(jié)構(gòu)與算法—插入排序&選擇排序

    數(shù)據(jù)結(jié)構(gòu)與算法—插入排序&選擇排序

    目錄 一、排序的概念 二、插入排序?? 1、直接插入排序? 特性總結(jié): 2、希爾排序 特性總結(jié): ?三、選擇排序 1、直接選擇排序? 特性總結(jié): 2、堆排序—排升序(建大堆) 向下調(diào)整函數(shù) 堆排序函數(shù) 特性總結(jié): 代碼完整版:? ?頭文件 ?函數(shù)文件 ?測試文件 排序 :所謂排序,

    2024年01月20日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包