java合并兩個(gè)int數(shù)組 為什么java的arrays類的sort方法對(duì)對(duì)象數(shù)組采用合并排序,而對(duì)基本類型數(shù)組卻采用快速排序?
為什么java的arrays類的sort方法對(duì)對(duì)象數(shù)組采用合并排序,而對(duì)基本類型數(shù)組卻采用快速排序?Java中arrays類的sort方法默認(rèn)情況下是按升序?qū)緮?shù)據(jù)類型進(jìn)行排序,例如sort(int
為什么java的arrays類的sort方法對(duì)對(duì)象數(shù)組采用合并排序,而對(duì)基本類型數(shù)組卻采用快速排序?
Java中arrays類的sort方法默認(rèn)情況下是按升序?qū)緮?shù)據(jù)類型進(jìn)行排序,例如sort(int[]ARR)和sort(double[]在JDK API中可以找到以下內(nèi)容:
從圖中可以看出,倒數(shù)第二行和第三行中的對(duì)象數(shù)組的排序也是默認(rèn)的升序,但是在輸入之前在這行代碼中,您需要為要排序的對(duì)象數(shù)組完成一個(gè)可比較的接口。代碼如下:public int[]getnewarrays(int[]one,int[]two){intlen=one.lengthintlen2=兩個(gè).lengthintlen3=oneLength Twolength//get the sum of two array length int[]newarray=newint[len3]//創(chuàng)建第三個(gè)數(shù)組,length=sum of two array length for(inti=0I<len3i){if(I<len){//if I<len,賦值給元素newarray[i]=one[i]continue}intt=i-len//t從0開(kāi)始,newarray[i]=two[t]//以下元素被賦值給two中的元素}//逐個(gè)賦值給第三個(gè)數(shù)組,值是前兩個(gè)數(shù)組數(shù)組.排序(newarray)//使用Java提供的排序方法對(duì)第三個(gè)數(shù)組進(jìn)行排序//此處也可以使用冒泡排序不顯示返回?cái)?shù)組}end
intmain(){Chara[]=“123456”char[]=“ABCDE”intbuflen=strlen(a)strlen(b)char*P=(char*)malloc(buflen 1)memset(P,0,buflen)printf(%dn,buflen)strcpy(P,a)strcat(P,b)printf(%sn,P)free(P)}C的數(shù)組在創(chuàng)建后不能更改,因此數(shù)組合并的思想是將數(shù)組放入足夠大的空間中以形成新的數(shù)組。上面的函數(shù)是一個(gè)相對(duì)簡(jiǎn)單的合并方法