public static List<Integer> sortNum(int[]is,int type ){ List<Integer> sort = new ArrayList<Integer>() ; for (int i = 0; i < is.length; i++) { if(type==1){ if(i==0){ sort.add(i, is[i]); }else{ int m = (sort.size()+1)/2 ;//大于的index int n = -1 ;//小于的index while(true){ if(n==0){ sort.add(0,is[i]); break; } if(m==sort.size()){ sort.add(sort.size(),is[i]); break; } if(n>0&&is[i]==sort.get(n)){ sort.add(m,is[i]); break; } if(n==m+1){ sort.add(n,is[i]); break; } if(m==n+1){ sort.add(m,is[i]); break; } if(is[i]>sort.get(m)){ n= m ; m = m/2 ; } if(is[i]<sort.get(m)){ n = m ; m =(sort.size()+m+1)/2 ;
List<Integer> sort = new ArrayList<Integer>() ;
for (int i = 0; i < is.length; i++) {
if(type==1){
if(i==0){
sort.add(i, is[i]);
}else{
int m = (sort.size()+1)/2 ;//大于的index
int n = -1 ;//小于的index
while(true){
if(n==0){
sort.add(0,is[i]);
break;
}
if(m==sort.size()){
sort.add(sort.size(),is[i]);
break;
}
if(n>0&&is[i]==sort.get(n)){
sort.add(m,is[i]);
break;
}
if(n==m+1){
sort.add(n,is[i]);
break;
}
if(m==n+1){
sort.add(m,is[i]);
break;
}
if(is[i]>sort.get(m)){
n= m ;
m = m/2 ;
}
if(is[i]<sort.get(m)){
n = m ;
m =(sort.size()+m+1)/2 ;
}
}
}
}
if(type==0){
}
}
return sort;
}
需求:把一个数组的前半部分按照由小到大顺序排序,后半部分按照由大到小顺序排序
思路:
1 先把数组按照从小到大的顺序排列好
2 取中间的那个数字
3 把右边的数字倒序排列
*/
class HomeWork2
{
public static void main(String[] args)
{
int[] arr={12,43,21,32,42,56};
bubble(arr);
}
//冒泡排序,先把数组从小到大排列
public static void bubble(int[] arr)
{
for(int i=0;i<arr.length-1;i++)
{
for(int j=0;j<arr.length-1-i;j++)
{
if(arr[j]>arr[j+1])
{
arr[j]=arr[j]^arr[j+1];
arr[j+1]=arr[j]^arr[j+1];
arr[j]=arr[j]^arr[j+1];
}
}
//System.out.println();
}
swapNum(arr);
}
//数组的后半部分按照从大到小排列
public static String swapNum(int[] arr)
{
int head=arr.length/2;
int tail=arr.length-1;
for(int i=0;i<arr.length;i++)
{
if(head<tail)
{
arr[head]=arr[head]^arr[tail];
arr[tail]=arr[head]^arr[tail];
arr[head]=arr[head]^arr[tail];
}
head++;
tail--;
}
//String str="33333";
for(int i=0;i<arr.length;i++)
{
System.out.print(arr[i]);
if(i<arr.length-1)
{
System.out.print(",");
}
//str=str+arr[i];
}
//System.out.println(str);
return "";
}}