zoukankan      html  css  js  c++  java
  • 算法导论(3)插入排序

    #pragma once
    /*
    插入排序算法,相当于抓牌时,手里的牌都是已经排序好的,新抓起的牌从右向左依次和手里的牌进行比较
    每比较依次都要后移一位多出一个空位,以便新牌插入到正确的位置
    */
    template<class T>
    void InsertSort(T *src, int length)
    {
    	for (int j = 1; j < length;j++) {
    		T key = src[j];   //待插入的牌
    
    		//将src[j]插入到src[j-1]-src[0]
    		int i = j - 1;
    		while (i >= 0 && key < src[i]) {   //待插入的牌小于手中标号为i的牌
    			src[i + 1] = src[i];           //说明这张牌还要继续向前插入,于是前面挪出一个位置
    			i--;                           //继续和前面一张进行比较
    		}
    		//退出循环的条件是i减小到-1,或者是key大于src[i]
    		src[i + 1] = key;
    	}
    }
  • 相关阅读:
    安装wamp的方法及过程
    js原生获取className&多选一
    构造函数
    轮播图
    NaN
    ++与--运算练习
    if语句的练习
    switch语句的练习
    九九乘法表
    mac下git提交github代码
  • 原文地址:https://www.cnblogs.com/ql698214/p/5426695.html
Copyright © 2011-2022 走看看