packagecom.yzh.sort;/*
冒泡排序
*/@SuppressWarnings({"all"})publicclassBubbleSort{publicstaticvoidBubbleSort(int[]a){for(int i =0; i <a.length-1; i++){boolean flag=true;for(int j =0; j <a.length-i-1; j++){if(a[j]>a[j+1]){int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=false;}}if(flag)break;}}}
二、选择排序
packagecom.yzh.sort;@SuppressWarnings({"all"})publicclassSelectSort{publicstaticvoidSelectSort(int[]a){for(int i =0; i < a.length -1; i++){int index = i;//标记为待比较的数for(int j = i +1; j < a.length; j++){//然后从后面遍历与第一个数比较if(a[j]< a[index]){//如果小,就交换最小值
index = j;//保存最小元素的下标}}//找到最小值后,将最小的值放到第一的位置,进行下一遍循环int temp = a[index];
a[index]= a[i];
a[i]= temp;}}}
三、插入排序
packagecom.yzh.sort;@SuppressWarnings({"all"})/*
插入排序
*/publicclassInsertSort{publicstaticvoidInsertSort(int[]a){for(int i =0; i < a.length; i++){//定义待插入的数int insertValue=a[i];//找到待插入数的前一个数的下标int insertIndex=i-1;while(insertIndex>=0&& insertValue <a[insertIndex]){//拿a[i]前面的数比较
a[insertIndex+1]=a[insertIndex];
insertIndex--;}
a[insertIndex+1]=insertValue;}}}
四、希尔排序
packagecom.yzh.sort;/*
希尔排序
*/@SuppressWarnings({"all"})publicclassShellSort{publicstaticvoidShellSort(int[] a){for(int gap=a.length /2; gap >0; gap = gap /2){//将整个数组分为若干个子数组for(int i = gap; i < a.length; i++){//遍历各组的元素for(int j = i - gap; j>=0; j=j-gap){//交换元素if(a[j]>a[j+gap]){int temp=a[j];
a[j]=a[j+gap];
a[j+gap]=temp;}}}}}}