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("序列排序失败");
}
}
}
运行结果
如图

本文介绍并实现了两种基本的排序算法——选择排序与插入排序,并通过Java代码进行了具体演示。提供了完整的排序过程,包括用户交互输入待排序序列、排序操作及结果验证。
:选择排序与插入排序&spm=1001.2101.3001.5002&articleId=78608836&d=1&t=3&u=b246c3e4605444a49e03549809eb9209)
1367

被折叠的 条评论
为什么被折叠?



