面试中用到的冒泡排序和快速排序;

直接上代码 !编译运行正确输出 package com.humi.db;

    public class Sort {
        
        /***
         * 冒泡排序算法,
         */
        static int[] intArr ={8,2,4,5,1,9,0,3,7,6};//测试数组
        public static void swap(int index,int nextIndex,int[] targetArray){
    //      int temp=targetArray[index];
    //      targetArray[index]=targetArray[nextIndex];
    //      targetArray[nextIndex]=temp;
            if(targetArray[index]==targetArray[nextIndex]){
                return;
            }
            targetArray[index]=targetArray[index]+targetArray[nextIndex];
            targetArray[nextIndex]=targetArray[index]-targetArray[nextIndex];
            targetArray[index]=targetArray[index]-targetArray[nextIndex];
        }
        public static void bubbleSort(int[] intArr){
            
            int temp;
            for (int i = 0; i <=intArr.length; i++) {//共N-1变
                for (int j = 0; j <intArr.length-1-i; j++) {//共 N-i-1的累加次
                    if(intArr[j]>intArr[j+1]){//升序
    //              if(intArr[j]<intArr[j+1]){//降序
                        temp=intArr[j];
                        intArr[j]=intArr[j+1];
                        intArr[j+1]=temp;
                    }
                }
            }
            for (int i = 0; i < intArr.length; i++) {
                System.out.print(intArr[i]+" ");
            }
        }
        /**
         * 快速排序算法实现,
         * @param args
         */
         public static void fastSort(int[] data, int start, int end) {  
                if (start >= end)  
                    return;  
                //以起始索引为分界点  
                int pivot = data[start];  
                int i = start + 1;  
                int j = end;  
                while (true) {  
                    while (i <= end && data[i] < pivot) {  
                        i++;  
                    }  
                    while (j > start && data[j] > pivot) {  
                        j--;  
                    }  
                    if (i < j) {  
                        swap( i, j,data);  
                    } else {  
                        break;  
                    }  
                }  
                //交换 j和分界点的值  
                swap( start, j,data);  
                
                //递归左子序列  
                fastSort(data, start, j - 1);  
                //递归右子序列  
                fastSort(data, j + 1, end);  
                
               
            }  
        
        /***
         * Java.util.Arrays 下的sort 归并排序的实现
         * @param args
         */
        public static void fastSort(int[] intArr){
            
        }
        public static void main(String[] args) {
    //      System.out.println("冒泡排序!升序ASC/降序DESC");
    //      bubbleSort(intArr);
            System.out.println();
            System.out.println("快速排序!ASC");
            fastSort(intArr,0,intArr.length-1);
             for (int j2 = 0; j2 < intArr.length; j2++) {
                    System.out.print(intArr[j2]+" ");  
                }
        }
    }

转载于:https://www.cnblogs.com/humi/p/7071917.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值