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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 双牌县| 梓潼县| 沂水县| 布尔津县| 壶关县| 彩票| 阿城市| 蕲春县| 渭源县| 万全县| 广宁县| 惠来县| 乌鲁木齐县| 诸城市| 蓬溪县| 商丘市| 富顺县| 特克斯县| 廊坊市| 库尔勒市| 镇雄县| 长岛县| 黑河市| 日照市| 厦门市| 临洮县| 长汀县| 岱山县| 河间市| 铜川市| 长宁县| 靖宇县| 泸溪县| 鄂托克旗| 遂宁市| 杭锦旗| 汝南县| 电白县| 共和县| 巴彦淖尔市| 钟祥市|