Java排序

冒泡排序
//冒泡排序就是把每一轮里,最高的那个选出来的过程 //轮做外层循环 次做内层循环
//外层循环控制轮次

//        for (int i = 0,t; i < array.length-1; i++,circleCount++) {
//            //内存循环控制每一轮比较多少次  找左边大的
//            for (int j = 0; j < array.length-1-i ; j++,circleCount++) {
//                if(array[j]>array[j+1]){
//                    t = array[j];
//                    array[j] = array[j+1];
//                    array[j+1] = t;
//                    swapCount++;
//                }
//            }
//        }
 **选择排序**    
//        for (int i = 0,maxValIx,maxIx,t; i <array.length-1 ; i++,circleCount++) {
//            maxValIx = 0;//假设最大值下标为0,并通过内层循环进程验证调整
//            maxIx = array.length-1-i;//最大下标在每一轮是固定的
//            for (int j = 1; j <=maxIx ; j++,circleCount++) {
//                if(array[maxValIx]<array[j]){
//                    maxValIx = j;
//                }
//            }
//            //判断最大值是否出现在最大下标,若不是则值交换
//            if(maxValIx != maxIx){
//                t = array[maxValIx];
//                array[maxValIx] = array[maxIx];
//                array[maxIx] = t;
//                swapCount++;
//            }
//        }
   **插入排序**  
for (int i = 1,t,j; i < array.length ; i++,circleCount++) {
    //先拿i和i-1位置上的值比较,如果i位置上的值大,则自然成序,进入下一轮
    if(array[i]>=array[i-1]){
        continue;
    }
    //用临时变量存储i位置的值
    t = array[i];
    //挪
    for (j = i-1; j>=0 && t<array[j] ; j--,circleCount++,swapCount++) {
        array[j+1] = array[j];
    }
    //插
    array[j+1] = t;
}

你可能感兴趣的:(java)