留个纪念:第一次写直接插入排序的“正确”代码

public void insertionSort(int[] a, int n) {
        if (n <= 1) return;
        for (int i = 0; i < n - 1; i++) {   //i代表有序区间的最后一个数据下标

            for (int j = i + 1; j > 0; j--) {
                if (a[j] < a[j - 1]) {
                    int less = a[j];
                    a[j] = a[j - 1];
                    a[j - 1] = less;
                } else {
                    break;
                }
            }
        }
    }

没有正确理解到插排是数据移动的特征,写了一个像插入排序也像冒泡排序的“正确”代码。

代码测试过,是能完成排序的预期,所以是说“正确”的代码

发布了91 篇原创文章 · 获赞 22 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_42006733/article/details/104385022