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 藍冰飛寒 閱讀(49) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 武宣县| 义乌市| 荥阳市| 庆城县| 贵州省| 合作市| 遂昌县| 定结县| 土默特左旗| 九江市| 城固县| 河曲县| 泗阳县| 封开县| 桂平市| 乐山市| 重庆市| 兴安县| 江门市| 绵阳市| 内黄县| 温州市| 山阴县| 韩城市| 东平县| 承德市| 苍溪县| 扬州市| 施甸县| 平邑县| 曲靖市| 突泉县| 班戈县| 阜阳市| 榕江县| 玛纳斯县| 临江市| 高州市| 华蓥市| 昌图县| 新密市|