关于练习程序的说明参见置顶的那篇。
2.1-1:
31 41 59 26 41 58
31 41 59 26 41 58
31 41 59 26 41 58
26 31 41 59 41 58
26 31 41 41 59 58
26 31 41 41 58 59
2.1-2:
#include <stdio.h> void inverseInsertSort(int a[], int n); int main(int argc, char *argv[])
{
int i;
int a[] = {, , , , , };
inverseInsertSort(a, );
for(i=; i<; i++)
printf(" %d ", a[i]);
printf("\n");
return ;
} void inverseInsertSort(int a[], int n)
{
int i,j,key; for(i=; i<n; i++)
if(a[] < a[i])
{
key = a[i];
a[i] = a[];
a[] = key;
} for(i=; i<n; i++)
{
key = a[i];
j = i - ;
while(key > a[j])
{
a[j+] = a[j]; j--;
}
a[j+] = key;
}
}
2.1-3:
int linearSearch(int a[], int n, int value)
{
int i; for(i=; a[i]!=value && i<n ; i++); return i<n ? i: -;
}
初始化:i=0
循环:a[i] !=value && i<n
结束: a[i] = value || i=n
因为i从0开始增加,所以一定会结束循环
2.1-4:
void addNBits(int n1[], int n2[], int sum[], int n)
{
int i, flag=; for(i=; i<n; i++)
{
sum[i] = n1[i] + n2[i] + flag;
flag = sum[i] >> ;
sum[i] %= ;
}
sum[n] = flag;
}