如果第一个比第二个大,就交换它们两个;
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
针对所有的元素重复以上的步骤,除了最后一个;
重复步骤1~3,直到排序完成...实现代码
public int[] sort(int[] input) {
//初始步长
int d = input.length / 2;
//当步长大于等于1,保证最后作为一个数组排序过...while (d >= 1) {
//对每一种步长,遍历所有(步长为5,遍历1到5,即可遍历所有)
for (int i = 0; i < d; i++) {
//插入排序...快排有个问题,基准的选择对效率的影响很大,极限情况下你每次都选最大的,效率就很差了.可以通过随机选取基准的方法略微的规避一下这个问题....必须是整数之间的排序
待排序序列的范围不能太大,比如排序(1,2,3,4)就很好.如果排序(1,10000,10000000)就会占用太大的内存.