java二路歸并排序示例分享
歸并排序就是采用分治法進(jìn)行排序:
(1)將一個(gè)數(shù)組分成小的2個(gè)數(shù)組分別進(jìn)行排序;
(2)之后將分出來的已經(jīng)拍好序的數(shù)組進(jìn)行合并;
import java.util.Scanner;
public class MergeSort {
int[] a=null;
int[] b=null;
int n;
Scanner sin=null;
MergeSort()
{
a=new int[10000];
b=new int[10000];
sin=new Scanner(System.in);
}
void sort(int start,int end) //排序a[start...end]
{
int mid;
if(start >= end) //只有一個(gè)元素的時(shí)候,直接返回
return ;
else
{
mid=(end-start)/2; //將元素分成兩半,分別排序
sort(start,start+mid);
sort(start+mid+1,end);
//歸并兩個(gè)有序的數(shù)組a[start...start+mid]和a[start+mid+1...end]
merge(start,start+mid,end);
}
}
void merge(int start,int mid,int end) //歸并
{
int t=start;
int i=start,j=mid+1;
while(i<=mid && j<=end)
{
if(a[i]<a[j])
b[t++]=a[i++];
else
b[t++]=a[j++];
}
while(i<=mid)
b[t++]=a[i++];
while(j<=end)
b[t++]=a[j++];
for(i=start;i<=end;i++) //排序后的內(nèi)容寫回a數(shù)組的相應(yīng)位置去
a[i]=b[i];
}
void run()
{
System.out.print("輸入要排序的數(shù)的個(gè)數(shù):");
n=sin.nextInt();
for(int i=0;i<n;i++)
a[i]=sin.nextInt();
sort(0,n-1);
System.out.println("排序結(jié)果是:");
//輸入要排序的數(shù)據(jù)
for(int i=0;i<n;i++)
System.out.println(a[i]+" ");
}
public static void main(String[] args) {
new MergeSort().run();
}
}
相關(guān)文章
HashMap方法之Map.getOrDefault()解讀及案例
這篇文章主要介紹了HashMap方法之Map.getOrDefault()解讀及案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
使用BigDecimal進(jìn)行精確運(yùn)算(實(shí)現(xiàn)加減乘除運(yùn)算)
這篇文章主要介紹了如何使用BigDecimal進(jìn)行精確運(yùn)算,最后提供了一個(gè)工具類,該工具類提供加,減,乘,除運(yùn)算2013-11-11
Spring?AI?+?混元帶你實(shí)現(xiàn)企業(yè)級(jí)穩(wěn)定可部署的AI業(yè)務(wù)智能體
我們深入探討了Spring?AI在智能體構(gòu)建中的實(shí)際應(yīng)用,特別是在企業(yè)環(huán)境中的價(jià)值與效能,通過逐步實(shí)現(xiàn)一個(gè)本地部署的智能體解決方案,我們不僅展示了Spring?AI的靈活性與易用性,還強(qiáng)調(diào)了它在推動(dòng)AI技術(shù)與業(yè)務(wù)深度融合方面的潛力,感興趣的朋友一起看看吧2024-11-11
Springmvc基于fastjson實(shí)現(xiàn)導(dǎo)包及配置文件
這篇文章主要介紹了Springmvc基于fastjson實(shí)現(xiàn)導(dǎo)包及配置文件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10
淺談java面向?qū)ο?類,封裝,this,構(gòu)造方法)
下面小編就為大家?guī)硪黄獪\談java面向?qū)ο?類,封裝,this,構(gòu)造方法)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
spring定時(shí)器@Scheduled異步調(diào)用方式
在Spring Boot中,@Schedule默認(rèn)使用單線程執(zhí)行定時(shí)任務(wù),多個(gè)定時(shí)器會(huì)按順序執(zhí)行,為實(shí)現(xiàn)異步執(zhí)行,可以通過自定義線程池或?qū)崿F(xiàn)SchedulingConfigurer接口,使用自定義線程池可以保證多個(gè)定時(shí)器并發(fā)執(zhí)行2024-11-11

