20180316 代码错题(1)

若有以下程序段:

则该程序段的功能是:      

对数组a进行插入排序(升序)
对数组a进行插入排序(降序)
对数组a进行选择排序(升序)
对数组a进行选择排序(降序)

答案 B  错选 C
插入排序的原理:始终定义第一个元素为有序的,将元素逐个插入到有序排列之中,其特点是要不断的移动数据,空出一个适当的位置,把待插入的元素放到里面去 。
 
选择排序的原理:每次在无序队列中“选择”出最小值,放到有序队列的最后,并从无序队列中去除该值(具体实现略有区别)。
 
在第i次排序中,前i-1个元素始终是有序的,此时只需把第i个元素插入到有序的序列中即可,故代码中体现的是插入排序的思想。代码中对当前a[i]>a[j](0<=k<i-1)是否成立进行判断,若成立则将a[j]往后移(即大的数排在前面,小的数排在后面),故代码中的排序原则为降序排。
原文地址:https://www.cnblogs.com/kxzh/p/8584404.html