我正在从我从老师那里得到的代码中处理插入排序问题,但是我不知道这是什么意思(int ai = a [i],j;)
public static void sort(int[] a) {
// POSTCONDITION: a[0] <= a[1] <= ... <= a[a.length-1];
for (int i = 1; i < a.length; i++) { // step 1
int ai = a[i], j; // step 2
for (j = i; j > 0 && a[j-1] > ai; j--) { // step 3
a[j] = a[j-1]; // step 4
}
a[j] = ai; // step 5
// INVARIANT: a[0] <= a[1] <= ... <= a[i];
}
答案 0 :(得分:7)
int ai = a[i], j;
这将声明变量ai
,并初始化为值a[i]
;以及未初始化的变量j
。
在同一条语句中声明两个或多个变量被某些人认为是令人困惑的,应避免使用(例如,它是banned by Google's style guide)。
答案 1 :(得分:5)
您可以这样声明变量
int a, b;
您可以分配这样的变量
int a = 10, b = 10;
所以代码
int ai = a[i], j;
声明两个变量(ai
和j
),但仅给ai
赋值a[i]
。