常见算法问题

排序

冒泡排序

9 6 7 8 5
五个数字从小到大排序,他们对应 abcde五个位置
1.比较ab位置的两个数字,大的放在b位置,比较bc的大小,大的放在c位置,最终e位置的数字是最大的,如此循环,达到排序的目的。

循环的过程中可以发现,abcde中e是最大的,从abcd中排序最大的

int[] arr = {9,8,7,6,5};

            for (int j=0; jlength-1;j++) {
                //如果没有发生交换,那么说明本来就是有序的,那么停止遍历
                boolean changed = false;
                for(int i=0; ilength-1-j; i++) { //
                    if(arr[i] > arr[i+1]) {
                        int temp = arr[i];
                        arr[i] = arr[i+1];
                        arr[i+1] = temp;
                        changed = true;
                    }



                }
                if(!changed) {
                    break;
                }
            }

你可能感兴趣的:(算法)