[algorithm.html](https://www.runoob.com/w3cnote/ten-sorting-algorithm.html
排序算法
冒泡排序
bubble Sort.gif public static void bubbleSort(int[] arr){
for(int i = 0;i< arr.length-1;i++){//外层循环控制排序趟数
for(int j = 0;j< arr.length-1-i;j++){//内层循环控制每一趟排序多少次
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
选择排序
insertSort.gifpublic static void selectSort(int[] arr){
for (int i = 0; i <arr.length-1 ; i++) {
int min = i;
for(int j = i; j < arr.length ; j++){
if(arr[j] < arr[min]){
min = j;
}
}
int temp = arr[i];
arr[i] = arr[min] ;
arr[min] = temp;
}
}
插入排序
public static void insertSort(int[] arr){
int j,temp;
for(int i = 1; i < arr.length; i++){
if(arr[i] < arr[i-1]){
temp = arr[i];
for(j= i - 1; j >= 0 && arr[j] > temp; j--){
arr[j+1] = arr[j];
}
arr[j+1] = temp;
}
}
}
插入排序的基本思路:
将较小的插入到元素的左端;
为插入的元素腾出空间,让后将其余元素都往后移动;
需要一个图来说明啊
希尔排序
在希尔排序时一种在出入排序的基础上进行,拓展得到的一种快速排序算法
public static void shellSort(int[] arrays){
int length = arrays.length;
int step = 1;
if( step < length/3){
step = 3 * step +1;
}
while (step >=1){
for (int i = step; i < arrays.length; i++) {
int j = i;
int temp = arrays[i];
// j - step 就是代表与它同组隔壁的元素
while (j - step >= 0 && arrays[j - step] > temp) {
arrays[j] = arrays[j - step];
j = j - step;
}
arrays[j] = temp;
}
step /=3;
}
}
归并排序
将数组切分然后递归的使用~~
public static void sort(int[] arrays){
}
向上归并 和向下递归并
快速排序
设置关键字然后分组进行划分,然后递归的排序字数组
java中是如何实现的比较的?
网友评论