插入排序

考研时候复习严蔚敏的数据结构,发现还有好多自己不会的东西,甚至连插入排序都忘了。特别尴尬。
插入排序的思路很简单,假设该数字前的数组已经是排好序了的,再将这个数字插入到合适的位置,再将后面的元素往后移一位。
比如4 1 9 7 20 3 5这样一个数组
第一趟排序后:1 4 9 7 20 3 5
第二趟排序后:1 4 9 7 20 3 5
第三趟排序后:1 4 7 9 20 3 5
第三趟排序后:1 4 7 9 20 3 5
第四趟排序后:1 3 4 7 9 20 5
第五趟排序后:1 3 4 5 7 9 20
具体算法如下:

public static void insertSort(int[] nums) {
    int i, j, temp;
    for (i = 1; i < nums.length; i++) {
        temp = nums[i];
        for (j = i - 1; j >= 0 && nums[j] > temp; j--) {
            nums[j + 1] = nums[j];
        }
        nums[j + 1] = temp;
   }
}

代码应该非常好懂,不需要做赘述了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们直接对代码进行分析:void MERGE_SORT(int A[], int p, int r){//分离数据...
    LRC_cheng阅读 2,338评论 0 1
  • 插入排序 直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好...
    anyurchao阅读 2,720评论 0 0
  • 今天早上上班之前习惯性的打开网易云音乐,收到了昨晚台湾金曲奖的推送,一支名叫“草东没有派对”的乐团在颁奖典礼上大放...
    白羊先生阅读 2,187评论 0 0
  • 蓝印花布——是最具象的中国风符号之一。想到蓝印花布,你能想到小桥流水边的袅袅佳人,也能想到山清水秀的苗寨里的动人歌...
    宋西坡阅读 10,984评论 4 5
  • 深拷贝就是生成一个新的对象,内容和原对象完全相同。浅拷贝即是指针的拷贝,生成一个新的指针指向原对象。
    TomatosX阅读 1,651评论 1 2