www问答网
所有问题
for(i=1;i<m;i++) { temp=a[i]; for(j=i-1;j>=0&&temp<a[j];j--) a[j+1]=a[j]; a[j+1]=temp; }
这个代码是插入法排序的核心代码,我需要有人能够解释一下。谢谢。
举报该问题
其他回答
第1个回答 2011-08-19
temp 把a[i] 保存下来
从i-1 往前 遇到比temp大的 都往后移动一个位置
最后停下来后,就是遇到比temp小,或者是开头 ,就把temp 插在这个位置本回答被提问者采纳
第2个回答 2011-08-19
应该是m个数从小到大排序
第3个回答 2011-08-19
啊,你哪段不懂啊?
相似回答
c语言问题大家看看这个代码为什么会出现非法内存引用
答:
while(n>3){ m=n%3
;i=0
;
for(j=0
;j<n;j++){ if((
j+1
)%3!
=0){
b
[i]
=
a[j];i++
;} } for(j=0;j<=i;j
++)a[j
]=b[j];n=i+1;
for(j=1;j
<=
m;j++){
temp=a[j];for(
k=j;k>0;k--)a[k]=a[k-
1];a[
0]=temp;} } return a[1];} ...
for(j=1;j
<=n
;j++)
{
for(i=1;i
<
m;i++)
数据结构, 求解释,怎么循环_百度...
答:
当j=1的时候,进入第二个
for
循环,
i=1
,2,...,
m
-
1;
内部循环了m-1次之后,又回到第一个for循环,然后此时j=2,内部循环又是进行m-1次;依此类推,一直循环到j=n,内部循环m-1次;简单点说就是,j取一个值,内部循环就要进行循环m-1次,因为j有n个值,所以总的要循环n*(m-1)次 ...
(1)
冒泡、直插、选择、快速、希尔、归并排序算法进行比较
;
(2)待排序...
答:
首先将不b[1]与b[2],如果b[1]大于b[2]则交换位置,否则不变;再比较b[2]与b[3],如果b[3]小于b[2],则将b[3]赋值给a,再将a与b[1]比较,如果a小于b
[1];
则将b[2],b[1]依次后移;在将a放在b[1]处以此类推,直到排序结束。初始关键字 [49 3865 97 76 13 27 59] a b[1] b[2] b[3...
Java求帮忙看看代码,怎么让最后一个数据后面没有空格
答:
(i
= 0; i
< n
; i++)
{ a[i] = input.nextInt(); }
for(i=
n-m,k
=0;i
<n;i++,k++){
temp=a[i];
for(j=i-1;j
>=k;j--
){
a[j+1]
=
a[j];
} a[k]=
temp;
} for(
有一道c
++
题编程题,这个怎么写?
答:
i,j,t,a[100],b[100]; cout<<"一维数组元素个数:"; cin>>m; cout<<"请输入"<<m<<"个数据:";
for(i=0; i
<
m; i++)
cin>>a[i]; cout<<"\n请输入要移动的次数:"; cin>>n; for(i=0; i<m; i++) b
[i]=a[i];
for(j=0
,i=n;i<m;...
...1.编写函数SUM求多项式前N项之和:1-1/2
+1
/3-1/4+1/5-1/6+...
答:
cin>>word;int i,j,
m;i
nt n=word.length();cout<<n<<endl
;for(i=0
;i<n-
1;i++){
char min=word
[i];for(j=i+1
,m=i;j<n;j++){ if(min>word[j]){ min=word
[j];m
=j;} } char
temp=
word[i];word[i]=word[m];word[m]=
temp;
} cout<<word<<endl;return 0;} ...
C语言中
for(i=1;i
<
m;i++)
{
for(i=1;i<m;i++)
答:
首先纠正内层循环计数器应该为j或者别的变量,否则和外层循环计数器冲突。第一个printf("*")从属于内层循环,第二个printf("*")从属于外层循环,在内层循环结束后执行。每一次外层循环,先执行内层循环,输出
(m
-
1)
个星号,然后执行后面的第二个printf,再输出一个星号。
、下面程序段的时间复杂度是 。
for(i=1;i
<=n
;i++)
for(j=1;j
<=...
答:
双重
for
循环,当然就是n的平方了,故选择D
C语言编程求解!~
答:
a[i]
[N -
1]
=
temp;
} } / 打印数组中的元素 / void printArray(){ int i,
j;for (i = 0; i
<
M; i++){
for (j = 0; j
< N; j++){ printf("%d \t", testArray[i]
[j]);
} printf("\n"); //换行 } } int main(){ int column = 0; //从哪列左移 print...
大家正在搜
l am from china
i am sorry that
i am sorry to
come from china
i come from什么意思
dinner is on me
m fine thank you
i from china中文
imhereforyou什么意思
相关问题
for(i=1;i<10;i++){for(j=1;j...
for(i=1;i<num.length;i++)for(j...
for(i=0;i<n;i++)for(j=1;j<m;j+...
for(j=0;j<n-1;j++) for(i=0;i<n...
时间复杂度 for(i=1;i<n;i++) for(j=0...
for (i=1;i<n;i++) for (j=0;j<n...
求 时间复杂度 for(i=0;i<n;i++)for(j=...
for (i = 0; i < 10; i++) for (...