</SPAN>
   </SPAN> 转眼间,大半个学期过去了,c</SPAN>语言的学习也过了一段时间。有时候,由于兴趣,自己在课堂上乱划,一道小程序便出来了,但是,要是不幸运的话,逻辑有毛病,抑或是语句出现问题,在电脑面前一坐便是几个小时了!</SPAN>
    随着时间的流逝,我对C</SPAN>语言的理解和感悟也积攒了不少!</SPAN>
    首先是数组的学习,给我带来了不少烦恼。但是说起数组来,它贯穿于我们整个c</SPAN>语言之中,我们经常要用它来存储数据。编写图形要用它来储存坐标数据,编写音乐要用它来储存音符乐谱,即使学生的成绩也要用到它来储存……但是,如果我们在利用它的时候,不好好注意,将被弄得眼花缭乱!我们在利用它来处理数据的时候,涉及到的排序,找最大,最小值这些问题。特别是排序,方法挺多,但如果不把握住几种常用的方法,使用数组就变得非常不便。常用的方法中,有冒泡排序,选择排序,希尔排序,快速排序等方法:选择法排序,与冒泡法排序都是利用for</SPAN>循环语句,前者是先寻找出最大最小值的下标,然后再交换,后者则是利用相邻间元素的比较大小,不符合要求顺序的就交换,这样一级一级地向上交换,把最大的或者最小的放到最上面去;对于后两种办法排序,都利用到循环次数不确定的while</SPAN>和do-while</SPAN>语句,前者还利用到for</SPAN>语句,希尔排序利用一一对应比较的办法,后者利用数组中其它元素与中间数进行比较大小,然后实行交换。</SPAN>

  1.这是冒泡法的程序:</SPAN>
#include</SPAN>
void sort(int array[],int size)</SPAN>
{</SPAN>
int i,j,temp;</SPAN>
</SPAN>
for(i=0;i
        for(j=i+1;j</SPAN>
               if(array>array[j])</SPAN></SPAN>
               {</SPAN></SPAN>
                      temp=array;</SPAN></SPAN>
                      array=array[j];</SPAN></SPAN>
                      array[j]=temp;</SPAN></SPAN>
               }</SPAN></SPAN>
}</SPAN>
void main()</SPAN>
{</SPAN>
int i;</SPAN>
int a[10]={1,33,78,34,787,213,132,35,32,21};</SPAN>
sort(a,10);</SPAN>
for(i=0;i
        printf("%6d",a);</SPAN></SPAN>
}

</SPAN>
  2.这是选择法的程序:</SPAN> </SPAN>
#include</SPAN>
void sort(int array[],int size)</SPAN>
{</SPAN>
int i,j,k,temp;</SPAN>
for(i=0;i
{</SPAN>
        k=i;</SPAN></SPAN>
</SPAN>
        for(j=i+1;j</SPAN>
               if(array[k]>array[j])</SPAN></SPAN>
                      k=j;</SPAN></SPAN>
        temp=array[k];</SPAN></SPAN>
        array[k]=array;</SPAN></SPAN>
        array=temp;</SPAN></SPAN>
}</SPAN>
}</SPAN>
void main()</SPAN>
{</SPAN>
int a[]={12,43,54,23,32,65,87,2,34,54};</SPAN>
int i;</SPAN>
sort(a,10);</SPAN>
for(i=0;i
        printf("%d\t",a);</SPAN></SPAN>
}

</SPAN>
 </SPAN></SPAN> </SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN></SPAN>  阅读全文>>