BlogJava 聯系 聚合 管理  

          Blog Stats

          News

           

          藍冰飛寒個人獨立博客地址,www.uphenan.com

          隨筆檔案

          文章檔案


          藍冰飛寒

          用心去做每一件事情

          首先 告訴你在“數組”中插入數據的可能行為“0”,看看數據結構就知道怎么回事了。唯一的可能性就是找到那個數相應的位置然后重新建立數組將數據插入到新的數組。

          /**
          被你的提問牽著走了,其實這個問題很簡單,反正是在已排好序中插入一個數,
          那就先新建一個數組,把原來的數組中的數據全復制過去,一并將要插入的數也放進去(放在開始或結尾都行),然后重新排序就行了,原來我還想先找出插入點,再作處理,其實從效率上說,感覺差不多,所以就有如下設計:
          */

          ///: Filename: Insert.java
          public class Insert {
          public static void main(String[] args) {
          int[] i = {5,6,7,44,55,89,};//原來的數組
          int x = 24;//要插入的數據
          System.out.print("插入前數據: ");
          print(i);
          i=insert(i,x);
          System.out.print("插入["+x+"]后數據: ");
          print(i);
          }
          /**遍歷并打印出數組中的數據*/
          private static void print(int[] a){
          for(int i=0; iSystem.out.print(a[i]+", ");
          System.out.println();//換行
          }
          /**插入數據并重新排序的方法*/
          private static int[] insert(int[] a,int in){
          int[] copy = new int[a.length+1];//新建一個臨時數組,長度比原數要大1
          copy[0]=in;//先將要插入的數據放入第一單元格
          //原來數組中的數復制過來,存在第二格為開始的單元格中
          for(int i=0; icopy[i+1]=a[i];
          //對臨時數組重新排序
          for(int i=0; i//如果前一數據大于后一數據,就進行交換.
          if(copy[i]>copy[i+1]){
          copy[i]+=copy[i+1];
          copy[i+1]=copy[i]-copy[i+1];
          copy[i]-=copy[i+1];
          i-=i==0?1:2;//逐級上溯
          }
          //返回臨時數組,任務完成
          return copy;
          }
          }
          ///:~END
          Tags -
          posted on 2009-04-22 20:33 藍冰飛寒 閱讀(51) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 四子王旗| 福泉市| 武安市| 若羌县| 宣武区| 安丘市| 庄河市| 阳城县| 长兴县| 马关县| 金秀| 伊春市| 平原县| 广饶县| 乐至县| 龙里县| 延庆县| 寻甸| 安西县| 山丹县| 历史| 璧山县| 崇信县| 汝城县| 通榆县| 沙河市| 堆龙德庆县| 班玛县| 高唐县| 德惠市| 万山特区| 古田县| 拜城县| 中山市| 互助| 建昌县| 平舆县| 双桥区| 大同县| 颍上县| 南昌县|