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

