算法名称 | 平均时间复杂度 | 空间复杂度 | 稳定性 |
---|
选择排序 | n2 | 1 | 不稳 |
插入排序 | n2 | 1 | 稳 |
冒泡排序 | n2 | 1 | 稳 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
一、选择排序(一)
import java.util.Random;
public class TestSort1 {
public static void main(String[] args) {
System.out.println("排序前:");
int[] num = generateIntArray();
System.out.println();
System.out.println("排序后:");
sortIntArray( num);
printIntArray(num);
}
private static void sortIntArray(int[] num){
for(int t=0;t<num.length-1;t++) {
int j=t;
for (int i = t+1; i< num.length; i++) {
if ( num[j] >num[i]) {
j =i;
}
}
changeIntArray(num,j,t);
}
}
private static int[] generateIntArray(){
int[] num =new int[10];
Random random =new Random();
for(int i=0;i<num.length;i++){
num[i] = random.nextInt(100);
System.out.print(num[i]+" ");
}
return num;
}
private static void changeIntArray(int[] num,int i ,int j){
int tempNum = num[i];
num[i] = num[j];
num[j] = tempNum;
}
private static void printIntArray(int[] num){
for(int i=0;i<num.length;i++){
System.out.print(num[i]+" ");
}
}
}
二 、选择排序(二)
import java.util.Random;
public class TestSort3 {
public static void main(String[] args) {
System.out.println("排序前:");
int[] num = generateIntArray();
System.out.println();
System.out.println("排序后:");
sortIntArray( num);
printIntArray(num);
}
private static int[] sortIntArray(int[] num){
for (int i =1 ;i< num.length ; i++) {
for(int t=i;t>0;t--) {
if ( num[t] <num[t-1]) {
changeIntArray(num,t,t-1);
}
}
}
return num;
}
private static void printIntArray(int[] num){
for(int i=0;i<num.length;i++){
System.out.print(num[i]+" ");
}
}
private static int[] generateIntArray(){
int[] num =new int[10];
Random random =new Random();
for(int i=0;i<num.length;i++){
num[i] = random.nextInt(100);
System.out.print(num[i]+" ");
}
return num;
}
private static void changeIntArray(int[] num,int i ,int j){
int tempNum = num[i];
num[i] = num[j];
num[j] = tempNum;
}
}
三 、冒泡排序(三)
import java.util.Random;
public class TestSort2 {
public static void main(String[] args) {
System.out.println("排序前:");
int[] num = generateIntArray();
System.out.println();
System.out.println("排序后:");
sortIntArray( num);
printIntArray(num);
}
private static int[] sortIntArray(int[] num){
for (int i = num.length-1; i>0; i--) {
for(int t=0;t<num.length-1;t++) {
if ( num[t] >num[t+1]) {
changeIntArray(num,t,t+1);
}
}
}
return num;
}
private static void printIntArray(int[] num){
for(int i=0;i<num.length;i++){
System.out.print(num[i]+" ");
}
}
private static int[] generateIntArray(){
int[] num =new int[10];
Random random =new Random();
for(int i=0;i<num.length;i++){
num[i] = random.nextInt(100);
System.out.print(num[i]+" ");
}
return num;
}
private static void changeIntArray(int[] num,int i ,int j){
int tempNum = num[i];
num[i] = num[j];
num[j] = tempNum;
}
}