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 -
          文章來源:http://www.tt-shopping.com/kevinlau/read.php/69.htm
          posted on 2009-04-22 20:33 藍冰飛寒 閱讀(75) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 阆中市| 马关县| 榕江县| 喀喇沁旗| 蚌埠市| 琼结县| 麻城市| 吴堡县| 琼中| 集贤县| 襄城县| 青神县| 九龙坡区| 乌审旗| 伊宁市| 临洮县| 临沧市| 渭源县| 昭通市| 铅山县| 枣强县| 娱乐| 化州市| 陵川县| 潮州市| 淮北市| 大方县| 阳信县| 高碑店市| 邛崃市| 新巴尔虎左旗| 石景山区| 新建县| 盐源县| 临潭县| 迁安市| 唐山市| 根河市| 阳泉市| 石柱| 洱源县|