这是算法中较为基础的一个算法, 其原理 与打牌时候的摸牌类似,我们把一堆牌不看摸好了上来, 接下来我们要对我们的牌进行处理,那我们一般的方法就是 比如 这张牌 先 看它前面的是否有比他大的,如果有的,我们就插到 那张牌的前面。 在计算机语言里面,我们可以模拟成一个数组,进行插入排序,当前 " 牌 "与其 “之前的牌”进行比较,如果 大于的话,把大于的向后移动,找到不比 “当前牌” 大的牌之后, 插入。我们进行如下的描述。
其 算法描述 如下:(升序)
假设 数据 A[N]
for( i 从数组的第二个数开始 到A.Length){ //设置临时变量存储当前 " 牌 " temp=A[ i ] //设置流动的数 j=i-1; (即从 i 的前一个开始判断) while( j > = 0 && A[ j ]>temp){//(判断 j 是不是有效 并且当前面一个 //数大于后 面时执行如下操作) A[j+1]=A[j];// 如果有,将前面一张"牌" 赋值 给 当前的 " 牌 " j--;// j 继续向前走, 看是否有比当前 " 牌 "大的"牌" } A[j+1]=temp;//如果没有,则把当前"牌 " 赋值给最后一个比 当前"牌" 大 的"牌" }