public class Textsort {
public static void bubbleSort(int[] x){ //冒泡排序
for(int i=0;i<x.length;i++){
for(int j=i+1;j<x.length;j++){
if(x[i]>x[j]){
int temp=x[i];
x[i]=x[j];
x[j]=temp;
}
}
}
for(int i=0;i<x.length;i++){
System.out.print(x[i]+" ");
}
}
public static void selectSort(int[] x){//选择排序
for(int i=0;i<x.length;i++){
int lowIndex=i;
for(int j=i+1;j<x.length;j++){//循环找出最小的索引
if(x[j]<x[lowIndex]){
lowIndex=j;
}
}
int temp=x[i];//交换
x[i]=x[lowIndex];
x[lowIndex]=temp;
}
for(int i=0;i<x.length;i++){
System.out.print(x[i]+" ");
}
}
public static void insertSort(int[] x){//插入排序
for(int i=1;i<x.length;i++){//i从1开始,因为第一个元素已经排好序
for(int j=i;j>0;j--){
if(x[j]<x[j-1]){
int temp=x[j];
x[j]=x[i];
x[i]=temp;
}
}
}
for(int i=0;i<x.length;i++){
System.out.print(x[i]+" ");
}
}
public static void shellSort(int[] x){//希尔排序
for(int increment=x.length/2;increment>0;increment/=2){//循环分组
for(int i=increment;i<x.length;i++){//循环每个组内的排序
int temp=x[i];
int j=0;
for(j=i;j>=increment;j-=increment){
if(temp<x[j-increment]){//元素进行判断、交换
x[j]=x[j-increment];
}else{
break;
}
}
x[j]=temp;
}
}
for(int i=0;i<x.length;i++){
System.out.print(x[i]+" ");
}
}
public static void main(String[] args) {
int[] arr={1,4,2,5,7,9,0,4,32,532,234};
System.out.println("---冒泡排序的结果:");
bubbleSort(arr);
System.out.println();
System.out.println("---选择排序的结果:");
selectSort(arr);
System.out.println();
System.out.println("---插入排序的结果:");
insertSort(arr);
System.out.println();
System.out.println("---shell排序的结果:");
shellSort(arr);
System.out.println();
}
}
实现冒泡排序、插入排序、选择排序、shell排序
最新推荐文章于 2023-05-10 16:56:33 发布