1.快速排序的简单使用代码如下:
private static void quickSort(int[] arrs) {
if(arrs.length>0){
//如果数组不为空
quickSortRecurSion(arrs,0,arrs.length-1);
}
System.out.println(Arrays.toString(arrs));
}
private static void quickSortRecurSion(int[] arrs, int low, int high) {
if(low<high){
//将list数组一分为二
int middle=getMiddle(arrs,low,high);
//对低字表进行排序
quickSortRecurSion(arrs,low,middle-1);
//对高字表进行排序
quickSortRecurSion(arrs,middle+1,high);
}
}
private static int getMiddle(int[] arrs, int low, int high) {
//数组第一个作为中轴
int temp=arrs[low];
while (low<high){
while (low<high&&arrs[high]>=temp){
high--;
}
//比较轴小的记录移到低端
arrs[low]=arrs[high];
while (low<high&&arrs[low]<temp){
low++;
}
//比中轴大的记录移到高端
arrs[high]=arrs[low];
//返回中轴的位置
}
//中轴记录到尾
arrs[low]=temp;
return low;
}
2.冒泡使用代码如下:
private static void maoPao(int[] arrs) {
for (int i = 0; i < arrs.length-1; i++) {
for (int j = 0; j < arrs.length-1-i; j++) {
if(arrs[j]>arrs[j+1]){
int temp=arrs[j];
arrs[j]=arrs[j+1];
arrs[j+1]=temp;
}
}
}
System.out.println(Arrays.toString(arrs));
}
3.插入排序代码如下:
private static void insertSort(int[] arrs) {
for (int i =0 ; i < arrs.length; i++) {
//待插入数据
int temp=arrs[i];
int j=0;
for (j=i-1;j>=0;j--){
//判断是否大于temp 大于则后移一步i
if(arrs[j]>temp){
arrs[j+1]=arrs[j];
}else{
break;
}
}
arrs[j+1]=temp;
System.out.println(i+":"+ Arrays.toString(arrs));
}
}