posts - 1,  comments - 25,  trackbacks - 0

          2.1-1這題可以參照書上17自己給出過程,這里就略去了。

          2.1-2 先給出書上insertion-sort的C源代碼吧,然后再給出按照非升序的代碼:

          課本中(非降序的)insertion-sort代碼:

           

          1. void insertion_sort(int *A, int n)  
          2. {  
          3.     int i,j;  
          4.     int key; 
          5.  
          6.     for(i = 1; i < n; i++)  
          7.     {  
          8.         j = i - 1;  
          9.         key = A[i]; 
          10.  
          11.         while(j >= 0 && A[j] > key)  
          12.         {  
          13.             A[j+1] = A[j];  
          14.             j = j - 1;  
          15.         } 
          16.  
          17.         A[j+1] = key;  
          18.     }  

           

          在這題中,只要講非降序改成非升序排序,所以改后代碼如下:

           

          1. void insertion_sort(int *A, int n)  
          2. {  
          3.     int i,j;  
          4.     int key; 
          5.  
          6.     for(i = 1; i < n; i++)  
          7.     {  
          8.         j = i - 1;  
          9.         key = A[i]; 
          10.  
          11.         while(j >= 0 && A[j] < key)  
          12.         {  
          13.             A[j+1] = A[j];  
          14.             j = j - 1;  
          15.         } 
          16.  
          17.         A[j+1] = key;  
          18.     }  

           

          2.1-3這題給出偽代碼:

           

          1. int find(int *A , int n, int v) 
          2.  
          3.  
          4.     int  i = 0; 
          5.  
          6.     for( ; i < n; i++) 
          7.  
          8.     { 
          9.  
          10.         if(v == A[i]) 
          11.  
          12.             return i; 
          13.  
          14.     } 
          15.  
          16.   
          17.  
          18.     return NIL; 
          19.  

           

          2.1-4直接給出代碼:

           

          1. /*在A[]和B[]中,數組的最低位對應與二進制的高位,即如果一個二進制數是011100,用數組表示就是A[] = {0,1,1,1,0,0}*/ 
          2.  
          3. void add(int *A ,int *B, int *C, int n)  
          4. {  
          5.     int i, a, c = 0;  
          6.     int s;  
          7.     for(i = n - 1; i >= 0 ; i--)  
          8.     {  
          9.         s = A[i] + B[i];  
          10.          
          11.         C[i+1] = (s + c) % 2;  
          12.         c = (s + c) / 2;  
          13.     } 
          14.  
          15.     C[0] = c;  

           

          posted on 2012-07-23 22:12 Daniel 閱讀(247) 評論(0)  編輯  收藏 所屬分類: CoreJava
          <2025年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(3)

          隨筆檔案

          文章分類

          文章檔案

          相冊

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 保山市| 南宫市| 汾西县| 安国市| 仙居县| 小金县| 兴山县| 从江县| 靖安县| 凭祥市| 嵊州市| 普宁市| 大英县| 定安县| 西丰县| 东丰县| 铁岭市| 正定县| 安塞县| 历史| 金沙县| 西华县| 江山市| 景谷| 崇州市| 无锡市| 旬邑县| 万宁市| 鄂托克前旗| 肇东市| 留坝县| 德清县| 疏勒县| 竹山县| 香格里拉县| 静安区| 乳山市| 日喀则市| 凌源市| 茌平县| 伊宁县|