import java.util.Stack;

public class Sort {
    public static void main(String[] args) {
        String a = "43561dgfhdfxz";
        int[] aa = { 12, 34, 76, 8, 45, 32, 15 };
        System.out.println("字符串排序结果:");
        System.out.println(Reverse(a));
        System.out.println("原数组为:");
        showArray(aa);
        System.out.println("数组逆序排序");
        reverseSort(aa);
        showArray(aa);
        System.out.println("冒泡排序:");
        bubbleSort(aa);
        showArray(aa);
        System.out.println("选择排序法:");
        selectSort(aa);
        showArray(aa);
        System.out.println("插入排序法:");
        insertSort(aa);
        showArray(aa);
    }
    
    
    // 创建一个字符串排序的方法
    public static String Reverse(String string) {
        // 首先实例化一个StringBuffer,方便调用其中方法对字符串进行更改
        StringBuffer sb = new StringBuffer();
        // 使用栈,传入一个字符串排序的对象,该对象实现了 Comparable<Character>接口
        Stack<Character> s = new Stack<Character>();
        // 开始FOR循环假设该字符的长度小于传入数组的长度
        for (int j = 0; j < string.length(); j++) {
            // 符串中第一个字符的下标是 0。如果参数 index 不在 0 与 string.length 之间,该方法将返回一个空字符串。
            s.add(string.charAt(j));
        }
        for (int j = 0; j < string.length(); j++) {
//            sb.append(s.pop());
            System.out.println(sb.append(s.pop()));
        }
        return sb.toString();

    }

    // 选择排序法
    public static int[] selectSort(int[] args) {
        for (int i = 0; i < args.length - 1; i++) {
            int min = i;
            for (int j = i + 1; j < args.length; j++) {
                if (args[min] > args[j]) {
                    min = j;
                }
            }
            if (min != i) {
                int temp = args[i];
                args[i] = args[min];
                args[min] = temp;
            }
        }
        return args;
    }

    // 插入排序法
    public static int[] insertSort(int[] args) {// 插入排序算法
        for (int i = 1; i < args.length; i++) {
            for (int j = i; j > 0; j--) {
                if (args[j] < args[j - 1]) {
                    int temp = args[j - 1];
                    args[j - 1] = args[j];
                    args[j] = temp;
                } else
                    break;
            }
        }
        return args;
    }

    // 冒泡排序法
    public static int[] bubbleSort(int[] args) {// 冒泡排序算法
        for (int i = 0; i < args.length - 1; i++) {
            for (int j = i + 1; j < args.length; j++) {
                if (args[i] > args[j]) {
                    int temp = args[i];
                    args[i] = args[j];
                    args[j] = temp;
                }
            }
        }
        return args;
    }

    // 数组逆序排序
    public static int[] reverseSort(int[] args) {
        int tem;

        for (int i = 0; i < args.length / 2; i++) {
            tem = args[i];
            args[i] = args[args.length - 1 - i];
            args[args.length - 1 - i] = tem;
        }
        return args;

    }

    // 打印输出数组
    public static void showArray(int[] array) {
        for (int i : array) {
            System.out.print(i + "\t");
        }
        System.out.println("");
    }

}
posted on 2017-08-09 12:20  微笑的喵~  阅读(214)  评论(0编辑  收藏  举报