⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_31152.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:31152 发表者:不 发表日期:2003-03-01 11:08:02
<br>主题:插入排序法a[index+1]=a[index]与a[index+1]=inserter
<br>内容:/*插入排序法*/<BR>#include&lt;iostream.h&gt;<BR><BR>void isort(int * a,int size);<BR><BR>void main()<BR>{<BR>&nbsp;&nbsp; int array[]={55,2,6,4,32,12,9,72,26,37};<BR>&nbsp;&nbsp; int len=sizeof(array)/sizeof(int);<BR><BR>&nbsp;&nbsp; for(int i=0;i&lt;len;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;array[i]&lt;&lt;",";<BR><BR>&nbsp;&nbsp; cout&lt;&lt;endl&lt;&lt;endl;<BR><BR>&nbsp;&nbsp; isort(array,len);<BR>}<BR><BR>void isort(int a[],int size)<BR>{<BR> int inserter,index;<BR><BR> for(int i=1;i&lt;size;i++)<BR> {<BR>&nbsp;&nbsp;&nbsp;&nbsp;inserter=a[i]; <BR>&nbsp;&nbsp;&nbsp;&nbsp;index=i-1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;while(index&gt;=0&amp;&amp;inserter&lt;a[index])<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a[index+1]=a[index];&nbsp;&nbsp;//后挪一个位置&nbsp;&nbsp;(这句不是赋值吗?)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; index--;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;a[index+1]=inserter;&nbsp;&nbsp; //插入&nbsp;&nbsp;(这句也不是赋值吗?)<BR><BR><BR> for(int j=0;j&lt;size;j++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;a[j]&lt;&lt;",";<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(j==i)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;'|';<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;cout&lt;&lt;endl;<BR> }<BR>}<BR><BR>不明白之处:<BR>a[index+1]=a[index]这句不是以经赋值了吗(如果i=1 那a[0]不是以经赋给a[1]),而 a[index+1]=inserter(而这里inserter是等于a[1],那不就是a[1]=a[1]这有意义吗)。<BR>以上这句我不是很理解请各位朋友指点,多谢!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:吊睛白额小虫 回复日期:2003-03-01 11:54:41
<br>内容:在排序循环体中, 当前位(第i位)之前是排好序的, 现在这一组的任务是将第i位和之前的排好序的各位再排好。<BR><BR><BR>while(index&gt;=0&amp;&amp;inserter&lt;a[index])<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;a[index+1]=a[index];&nbsp;&nbsp;//后挪一个位置&nbsp;&nbsp;(这句不是赋值吗?)<BR>&nbsp;&nbsp;&nbsp;&nbsp;index--;<BR>}<BR><BR>这一段是从前面排好序的数中, 从后到前确定第i位的插入位置。凡是比第i位(inserter)大的都向后移一位,如果找到一个不比第i位大的,那么这位之前的必然也不比第i位大(因为这部分是排好序的)。<BR><BR>&nbsp;&nbsp; a[index+1]=inserter;&nbsp;&nbsp; //插入&nbsp;&nbsp;(这句也不是赋值吗?)<BR>既然第index位不比原第i位大,那么原来的第i位(inserter)就放在这位之后吧!<BR><BR>于是前i+1 (0~i) 位都排好了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:不 回复日期:2003-03-01 14:16:51
<br>内容:谢谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -