开发者社区> 问答> 正文

java题:请使用任意一例排序算法,对int[] intArr={5,9,1,4,1,2,6,3,8,0,7}进行排序

java题:请使用任意一例排序算法,对int[] intArr={5,9,1,4,1,2,6,3,8,0,7}进行排序

展开
收起
知与谁同 2018-07-18 09:22:52 2581 0
2 条回答
写回答
取消 提交回答
  • import static java.lang.System.*;
    public class Program {
    public static void main(String[] args) {
    int[] intArr={5,9,1,4,1,2,6,3,8,0,7};
    insertSort(intArr);
    }

    /**
     * @param array插入排序算法待排数组
     */
    static void insertSort(int ...array){
    int i,j,temp;
    for(i=1;i<array.length;i++){
    if(array[i]<array[i-1]){
    temp=array[i];
    for(j=i-1;j!=-1&&array[j]>temp;j--){
     array[j+1]=array[j];// 元素向后挪动
    }
    array[j+1]=temp;
    }
    }

    for(int item:array) out.print(item+" ");
    }
    }
    2019-07-17 22:49:57
    赞同 展开评论 打赏
  • public static void main(String[] args) {
    int [] arrs = {5,9,1,4,1,2,6,3,8,0,7};//new int[5][3];
    mySort(arrs,0,arrs.length-1);
    display(arrs);
    }

    public static void mySort(int [] arrs,int low,int high){
    int lo=low;
    int hi=high;
    if (lo>=hi) {
    return;
    }else{
    boolean flag=false;
    while (lo<hi) {
    if (arrs[lo]>arrs[hi]) {
    int temp=arrs[lo];
    arrs[lo]=arrs[hi];
    arrs[hi]=temp;
    flag=!flag;
    }else{
    if (flag) {
    lo++;
    }else{
    hi--;
    }
    }

    }
    lo--;
    hi++;
    mySort(arrs,low,lo);
    mySort(arrs,hi,high);

    }
    }
    public static void display(int [] arrs){
    System.out.println("-----------新生数据-----------");
    for (int flag = 0; flag < arrs.length; flag++) {
    System.out.print(arrs[flag]+" ");
    }
    System.out.println();
    }

    这种的是用递归+二分排序 效率很高 希望能帮到你。
    2019-07-17 22:49:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载