日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bucket java_桶排序(BucketSort)(java)

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bucket java_桶排序(BucketSort)(java) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、原理

桶排序的工作原理是吧區間劃分為n個大小相同的子區間,這樣的區間稱為桶。然后將n個輸入的數分步到各個桶中去。每個桶再個別的排序,然后按照次序吧各個桶

中的元素列出來即可。

二、時間復雜度

桶排序是一種鴿巢排序的一種歸納結果。當要被排序陣列內的數值是均勻分配的時候,桶排序使用線性時間(O(n))。但桶排序并不是比較排序,它不受

O(nlongn)下限的影響。

eg:對大小為[1...1000]范圍內的n個整數A[1..n]排序。可以把桶設置為大小為10的范圍,具體而言設集合B[1]存儲[1..10]的整數,集合B[2]存儲(10..20]的整數,

i=1,2,,100.總共100個桶然后掃描A[i],吧每個A[i]放入到對應的B[j]中。然后再對每個桶里的數字排序。

假設有n個數字,有m個桶,如果數字是平均分布的,則每個桶里面平均有n/m個數字。如果每個桶里中的數字采用快速排序,那么整個算法的復雜度是

O(n+m*n/m*log(n/m)) = O(n+nlogn-nlogm).當m接近n時,桶排序復雜度接近O(n)。

三、代碼

import java.util.ArrayList;

import java.util.Collections;

import java.util.Random;

import java.util.List;

public class BucketSort {

int bucketSize = 10

int arraySize = 1000;

public static void main(String[] args) {

// TODO Auto-generated method stub

BucketSort bs = new BucketSort();

int[] array = bs.getArray();

bs.bucketSort(array);

}

public int[] getArray(){

int[] arr = new int[arraySize /3];

Random r = new Random();

for(int i = 0; i < arraySize /3 ; i++)

{

arr[i] = r.nextInt(100000);

}

return arr;

}

public void bucketSort(int[] a)

{

List bucket[] = new ArrayList[bucketSize];

for(int i=0; i < a.length ; i++)

{

int temp = a[i]/10000;

if(bucket[temp] == null)

{

bucket[temp] = new

ArrayList();

}

bucket[temp].add(a[i]);

}

//對桶內各個元素進行排序

for(int j=0;j

{

intsertSort(bucket[j]);

printList(bucket[j]);

}

}

private void printList(List list) {

// TODO Auto-generated method stub

while(list.size()>0)

{

System.out.print(list.remove(0) +"\t");

}

}

private void intsertSort(List list) {

// TODO Auto-generated method stub

Collections.sort(list);

}

}

總結

以上是生活随笔為你收集整理的bucket java_桶排序(BucketSort)(java)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。