实现冒泡排序、插入排序、选择排序、shell排序

来源:互联网 发布:大数据 智能交通 编辑:程序博客网 时间:2024/05/01 07:14
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();}}

原创粉丝点击