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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java sort 字符串_java实现6种字符串数组的排序(String array sort)

發(fā)布時(shí)間:2024/8/1 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java sort 字符串_java实现6种字符串数组的排序(String array sort) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

注意,本文不是字符串排序,是字符串?dāng)?shù)組的排序。

方法分別是:

1、低位優(yōu)先鍵索引排序

2、高位優(yōu)先建索引排序

3、java自帶排序(經(jīng)過調(diào)優(yōu)的歸并排序)

4、冒泡排序

5、快速排序

6、三向快速排序

時(shí)間復(fù)雜度:

最慢的肯定是冒泡,o(n的平方)

最快的是快速排序,平均 o(nlogn)

低位優(yōu)先,o(nw),w是字符串長度,在字符串長度較短情況下和快速排序時(shí)間應(yīng)該很接近

高位優(yōu)先,o(n) - o(nw)

三向快速排序,o(n) - o(nw)

本文中使用的例子是一個(gè)5757行的隨機(jī)字符串?dāng)?shù)組文本txt,實(shí)際測試結(jié)果:

低位優(yōu)先鍵索引排序:5 ms

高位優(yōu)先鍵索引排序:8 ms

java自帶排序:9 ms

冒泡排序:284 ms

快速排序:8 ms

三向快速排序:12 ms

穩(wěn)定的排序是:

低位優(yōu)先鍵索引排序

高位優(yōu)先建索引排序

歸并排序(java自帶的排序算法),速度還行,關(guān)鍵是保持循環(huán)情況下的順序穩(wěn)定

低位優(yōu)先:

public static void sort(string[] a, int w) {

int n = a.length;

int r = 256; // extend ascii alphabet size

string[] aux = new string[n];

for (int d = w-1; d >= 0; d--) {

int[] count = new int[r+1];

for (int i = 0; i < n; i++)

count[a[i].charat(d) + 1]++;

for (int r = 0; r < r; r++)

count[r+1] += count[r];

for (int i = 0; i < n; i++)

aux[count[a[i].charat(d)]++] = a[i];

for (int i = 0; i < n; i++)

a[i] = aux[i];

}

}

java自帶排序:

arrays.sort(arr);

冒泡:

public static void bubblingsort(string[] arr) {

int size = arr.length;

for(int i = 0; i

for (int j = i+1; j

if(arr[i].compareto(arr[j])>0) {

string temp = arr[i];

arr[i] = arr[j];

arr[j] = temp;

}

}

}

}

快速:

static void quicksort(string[] arr,int left,int right) //快速排序算法

{

string f,t;

int rtemp,ltemp;

ltemp=left;

rtemp=right;

f=arr[(left+right)/2]; //分界值

while(ltemp

{

while(arr[ltemp].compareto(f)<0)

{

++ltemp;

}

while(arr[rtemp].compareto(f)>0)

{

--rtemp;

}

if(ltemp<=rtemp)

{

t=arr[ltemp];

arr[ltemp]=arr[rtemp];

arr[rtemp]=t;

--rtemp;

++ltemp;

}

}

if(ltemp==rtemp)

{

ltemp++;

}

if(left

{

quicksort(arr,left,ltemp-1); //遞歸調(diào)用

}

if(ltemp

{

quicksort(arr,rtemp+1,right); //遞歸調(diào)用

}

}

三向快速:

驗(yàn)證代碼:

public static void main(string[] args) {

url path = sortwords.class.getresource("");

//不定長隨機(jī)單詞1000個(gè)

//file file = new file(path.getpath()+"/1000words.txt");

//長度為5的單詞,5757個(gè)

file file = new file(path.getpath()+"/words5.txt");

file file1 = new file(path.getpath()+"/words5.txt");

file file2 = new file(path.getpath()+"/words5.txt");

file file3 = new file(path.getpath()+"/words5.txt");

file file4 = new file(path.getpath()+"/words5.txt");

file file5 = new file(path.getpath()+"/words5.txt");

string[] arr = (string[])readfiledata.txt2list(file).toarray(new string[0]);

//排序前

for(string s : arr) {

//system.out.println(s.tostring());

}

//##############低位優(yōu)先

timemillis.setstart();

lsd.sort(arr,5);

timemillis.setend("低位優(yōu)先鍵索引排序:");

//排序后

for(string s : arr) {

//system.out.println(s.tostring());

}

//##############高位優(yōu)先

string[] arr1 = (string[])readfiledata.txt2list(file1).toarray(new string[0]);

timemillis.setstart();

msd.sort(arr1);

timemillis.setend("高位優(yōu)先鍵索引排序:");

//排序后

for(string s : arr1) {

//system.out.println(s.tostring());

}

//##############java自帶排序

string[] arr2 = (string[])readfiledata.txt2list(file2).toarray(new string[0]);

timemillis.setstart();

arrays.sort(arr2);

timemillis.setend("java自帶排序:");

//排序后

for(object s : arr2) {

//system.out.println(s.tostring());

}

//##############冒泡排序

string[] arr3 = (string[])readfiledata.txt2list(file3).toarray(new string[0]);

timemillis.setstart();

bubblingsort(arr3);

timemillis.setend("冒泡排序:");

//排序后

for(string s : arr3) {

//system.out.println(s.tostring());

}

//##############快速排序

string[] arr4 = (string[])readfiledata.txt2list(file4).toarray(new string[0]);

timemillis.setstart();

quicksort(arr4,0,5756);

timemillis.setend("快速排序:");

//排序后

for(string s : arr4) {

//system.out.println(s.tostring());

}

//##############三向快速排序

string[] arr5 = (string[])readfiledata.txt2list(file5).toarray(new string[0]);

timemillis.setstart();

quick3string.sort(arr5);

timemillis.setend("三向快速排序:");

//排序后

for(string s : arr5) {

//system.out.println(s.tostring());

}

}

運(yùn)行多次結(jié)果相近:

低位優(yōu)先鍵索引排序:8 ms

高位優(yōu)先鍵索引排序:10 ms

java自帶排序:15 ms

冒泡排序:315 ms

快速排序:9 ms

三向快速排序:13 ms

用到的數(shù)據(jù)txt文件下載:

readfiledata幫助類:

import java.io.bufferedreader;

import java.io.file;

import java.io.filereader;

import java.util.arraylist;

import java.util.list;

public class readfiledata {

public static string txt2string(file file){

stringbuilder result = new stringbuilder();

try{

bufferedreader br = new bufferedreader(new filereader(file));

string s = null;

while((s = br.readline())!=null){

result.append(system.lineseparator()+s);

}

br.close();

}catch(exception e){

e.printstacktrace();

}

return result.tostring();

}

public static list txt2list(file file){

try{

bufferedreader br = new bufferedreader(new filereader(file));

list list = new arraylist();

string s;

while((s = br.readline())!=null){

list.add(s);

}

br.close();

return list;

}catch(exception e){

e.printstacktrace();

}

return null;

}

public static object[] txt2array(file file){

return txt2list(file).toarray();

}

}

參考書目:《算法 4th》

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持萬仟網(wǎng)。

希望與廣大網(wǎng)友互動(dòng)??

點(diǎn)此進(jìn)行留言吧!

總結(jié)

以上是生活随笔為你收集整理的java sort 字符串_java实现6种字符串数组的排序(String array sort)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本丰满少妇一区二区三区 | 国产精品国产a级 | 国产精品电影网 | 91久色蝌蚪 | 999精品 | 中文字幕淫 | 成人福利视频在线观看 | 无罩大乳的熟妇正在播放 | 亚洲一区二区三区免费看 | 香蕉久久视频 | 精品国产xxx | 吻胸摸激情床激烈视频大胸 | 五月情婷婷 | 亚洲乱码中文字幕久久孕妇黑人 | 欧美激情视频在线播放 | 香蕉av一区二区 | 男女啪啪无遮挡 | 中国毛片网 | 欧美在线一区二区 | 国产无套在线观看 | 欧美国产视频一区 | 美女露隐私网站 | 久久影院午夜 | 黄色片子视频 | 老外黄色一级片 | 欧美第一页浮力影院 | 日韩一区av在线 | 亚洲网站在线免费观看 | 亚洲AV成人无码一二三区在线 | 日本涩涩视频 | 18av在线视频 | 被黑人啪到哭的番号922在线 | 最新高清无码专区 | 99国产精品久久久久久久 | 女同av在线 | 免费高清视频一区二区三区 | 精品一区二区人妻 | 久久久国产精华液999999 | 日韩三级黄色 | www插插插无码免费视频网站 | 国产成人av一区二区三区不卡 | 日本免费一区二区三区 | 久久er99热精品一区二区介绍 | 美女av一区二区 | 亚洲男人网站 | 亚洲欧洲一级 | 夜夜精品一区二区无码 | 日日夜精品 | 善良的女邻居在线观看 | porn国产| 亚洲综合五月天 | 欧美伦理影院 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲欧美精品aaaaaa片 | 欧美综合社区 | 少妇特黄一区二区 | 亚洲天天av| 国产又粗又猛又爽又黄的视频一 | 亚洲成av人片在www色猫咪 | a黄色一级片 | 欧美成人三级视频 | 亚洲乱码中文字幕 | 超碰91在线观看 | 黄色免费av网站 | 怡红院男人的天堂 | 狠狠干快播 | 国产视频在| 国产午夜三级 | 欧美gv在线| 91蜜桃臀久久一区二区 | 贝利弗山的秘密在线观看 | 久操av| 少妇一区二区视频 | 性一交一乱一伧国产女士spa | 国产1页 | 日本国产中文字幕 | 国产一区美女 | 99久久99久久 | 亚洲AV无码久久精品色三人行 | 日韩欧美中文字幕一区二区三区 | 久久久久久久久久久久久久久久久久 | 久久精品99久久久 | 欧美激情动态图 | 牛牛影视一区二区 | 久久精品66 | 视频三区在线 | 开心激情久久 | 在线一级片| 亚洲欧美另类中文字幕 | 欧美天天视频 | 日皮毛片 | 国产日韩亚洲 | 亚洲欧美自拍偷拍 | 国模精品一区 | jizz在亚洲| 亚洲国产精品久久久久婷婷老年 | 国产成人97精品免费看片 | 国产69精品久久久久久久 | 在线免费观看日韩 |