JAVA实现排序算法(一):选择排序与插入排序

来源:互联网 发布:linux root 破解 编辑:程序博客网 时间:2024/06/09 14:29

JAVA实现排序算法(一):选择排序与插入排序


选择排序的算法内容

插入排序的算法内容

代码

package com.lx.sort;import java.util.Scanner;/**         * @ProjectName:  [MyAlgorithm]    * @Package:      [com.lx.sort]     * @ClassName:    [Example]      * @Description:  [排序]      * @Author:       [刘翔]      * @CreateDate:   [2017年11月12日 下午9:00:14]      * @UpdateUser:   [刘翔]      * @UpdateDate:   [2017年11月12日 下午9:00:14]      * @UpdateRemark: [说明本次修改内容]     * @Version:      [v1.0]    *       */public class Sort {    /**    * @Description: TODO(选择排序)    * @param @param args        */    public static String[] SelectSort(String[] a) {        int N = a.length;        for (int i = 0; i < N; i++) {            int min = i;            for (int j = i + 1; j < N; j++) {                if (less(a[j], a[min])) {                    min = j;                }            }            exch(a, i, min);        }        return a;    }    /**    * @Description: TODO(插入排序)    * @param @param args        */    public static String[] InsertSort(String[] a) {        int N = a.length;        for (int i = 1; i < N; i++) {            for (int j = i; j > 0 && less(a[j], a[j - 1]); j--) {                exch(a, j, j - 1);            }        }        return a;    }    /**    * @Description: TODO(判断v是否比w小)    * @param @param args        */    private static boolean less(String v,String w) {        return v.compareTo(w) < 0;    }    /**    * @Description: TODO(交换字符i和j的位置)    * @param @param args        */    private static void exch(String[] a,int i,int j) {        String t = a[i];        a[i] = a[j];        a[j] = t;    }    /**    * @Description: TODO(用于打印当前序列)    * @param @param args        */    public static void show(String[] a) {        for (int i = 0; i < a.length; i++) {            System.out.print(a[i] + " ");        }        System.out.println();    }    /**    * @Description: TODO(用于测试字符序列a[]是否有序)    * @param @param args        */    public static boolean isSorted(String[] a) {        for (int i = 1; i < a.length; i++) {            if (less(a[i],a[i-1])) {                return false;            }        }        return true;    }    /**    * @Title: main    * @Description: TODO(用于测试从键盘录入的一列字符是否有序)    * @param @param args        */    public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        System.out.println("请输入要排序的字符序列,输入的字符序列格式为1,2,3...9");        String str = sc.nextLine();        String[] info = str.split(",");        System.out.println("当前序列的顺序是:");        show(info);        System.out.println("对当前序列进行排序");        //SelectSort(info);        InsertSort(info);        System.out.println("现在序列的排序是:");        show(info);        if (isSorted(info)) {            System.out.println("序列已经成功的进行了排序");        } else {            System.out.println("序列排序失败");        }           }}

运行结果

如图

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