排序算法(3)- 插入排序(Insertion Sort)

学习排序网站:https://www.toptal.com/developers/sorting-algorithms
本文排序方式以从小到大顺序为准

原理

循环地把元素插入到有序数组中。
当前元素前面的元素视为已排序元素,当前元素值存入临时变量;临时变量和前一个元素比较,如果小于前一个元素,则前一个元素后移一位;临时变量再和前面的元素比较,直到临时变量大于比较元素,把临时变量放在比较元素后一位。

注意点

因为是把元素插入有序数组中,所以队列越接近排序好的数组,或者说未排序的越少,则插入排序越有优势。

示例

    public int[] sort(int[] data) {
        for (int i = 1, len = data.length; i < len; i++) {
            int temp = data[i]; // 要插入的元素
            int j = i - 1;
            while(j>=0 && temp1] = data[j];
                j--;
            }
            data[j + 1] = temp;
        }
        return data;
    }

你可能感兴趣的:(排序算法)