概述
快速插入排序和希尔排序都属于插入排序。 直接插入排序每趟将一个元素,按照其的大小直接插入到它前面已经排序的子序列中,依此重复,直到插入全部元素。 希尔排序是将序列先按一定距离进行分组然后在组内进行直接插入排序。
快速插入排序:
package com.zx.sort;
import java.util.Arrays;
public class Insertion {
public static void main(String[] args) {
int[] a={6,1,10,2,4,8,5};
sort(a);
System.out.println(Arrays.toString(a));
}
public static void sort(int[] a){
for (int i = 1; i < a.length; i++) {
int temp = a[i];
int j;
for (j = i-1; j >= 0 &&temp<a[j]; j--) {
a[j+1]=a[j];
}
a[j+1]=temp;
}
}
}
希尔排序
package com.zx.sort;
import java.util.Arrays;
public class Shell {
public static void main(String[] args) {
int[] a={5,9,3,7,66,1,5,44,12};
sort(a);
System.out.println(Arrays.toString(a));
}
public static void sort(int[] a){
for (int i = a.length/2; i > 0; i=i/2) {
System.out.println("分组间隔i:"+i);
for (int j = i; j < a.length; j++) {
int temp = a[j];
int k;
for (k = j-i; k>=0 && temp<a[k]; k = k-i) {
a[k+i]=a[k];
}
a[k+i]=temp;
}
}
}
}
最后
以上就是温暖自行车为你收集整理的排序算法 - 快速插入排序和希尔排序的全部内容,希望文章能够帮你解决排序算法 - 快速插入排序和希尔排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复