算法1
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
import java.util.Scanner;
public class Main{
public static void main(String args[]){
Main m =new Main();
Scanner s = new Scanner(System.in);
int length = s.nextInt();
int[] nums=new int[length];
int i=0;
while(s.hasNextInt())
{
nums[i++]=s.nextInt();
}
m.msort(nums,0,length-1);
for(int j =0;j<length;j++){
System.out.print(nums[j]+" ");
}
}
public void msort(int[] nums,int l,int r){
if(r-l<1) return;//error
int m = l+r>>1;//error
msort(nums,l,m);//l~m有序
msort(nums,m+1,r);//m+1~r有序
//归并两个序列
int [] temp=merge(nums,l,m,r);
//开辟的新数组里的数没有传到arr数组中去
for(int i=0;i<temp.length;i++)
{
nums[l+i]=temp[i];
}
}
public int[] merge(int[] nums,int l,int m,int r){
int[] temp = new int[r-l+1]; //error
int i = l;//left banch
int j = m+1;//right banch
int t = 0;//the index of the new array
while(i<=m&&j<=r){
if(nums[i]<nums[j]) temp[t++]=nums[i++];
else temp[t++]=nums[j++];
}
while(j<=r) temp[t++]=nums[j++];
while(i<=m) temp[t++]=nums[i++];
return temp;
}
}
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
blablabla