下面这段代码实现了选择排序算法。
void sort(int a[], int n) {
for (int i = 1; i < n; i++) {
int x = a[i];
int j = i - 1;
while (j >= 0 && a[j] > x) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = x;
}
}答案B。>=是大于等于比较运算符,>>=是右移赋值运算符(a>>=3等价于a=a>>3)。两者都是合法的C++运算符。
>=是右移赋值运算符,不是比较运算符。a>>=3相当于a=a>>3,将a右移3位。
【考点】算法实现细节|排序算法辨析|循环与数组操作
本题考查《GESP 四级大纲》"算法基础"模块中的排序算法实现与识别。命题人卡住的就是学生"只认名字不认代码"的致命弱点——看到"选择排序"就默认代码是选择排序,根本不看它实际在干什么。