【算法】程序猿不写代码是不对的75

来源:互联网 发布:log4j写入mysql数据库 编辑:程序博客网 时间:2024/05/22 09:32
package com.kingdz.algorithm.time201706;/** * <pre> * 冒泡排序计数 *  * http://judgecode.com/problems/1007 *  * Given a permutation of integers from 0 to n - 1, sorting them is easy. * But what if you can only swap 2 adjacent integers? * Please calculate the minimal number of swaps. *  * 每次都从头到尾进行比较,如果有交换则说明没有到最终的顺序则继续循环, * 直到某一轮比较没有交换,说明已经按照从小到大排序,则可以输出所需的交换的次数 * </pre> *  * @author kingdz *  */public class Algo29 {    public static void main(String[] args) {        String input = "3 2 1 0";        int times = swapToSort(input);        System.out.println("need times:" + times);    }    private static int swapToSort(String input) {        String[] arr = input.split(" ");        int[] number = new int[arr.length];        for (int i = 0; i < number.length; i++) {            number[i] = Integer.parseInt(arr[i]);        }        int sum = 0;        int flag = 1;        while (flag > 0) {            flag = 0;            for (int i = 0; i < number.length - 1; i++) {                if (number[i] > number[i + 1]) {                    int temp = number[i];                    number[i] = number[i + 1];                    number[i + 1] = temp;                    flag++;                }            }            sum = sum + flag;        }        return sum;    }}

阅读全文
0 0
原创粉丝点击