您的位置:首页 > 编程语言 > Java开发

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

2017-11-22 21:55 597 查看

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.n
4000
extLine();
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("序列排序失败");
}
}
}


运行结果

如图

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐