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

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


          網站導航:
           
          主站蜘蛛池模板: 钟祥市| 威信县| 长宁区| 胶州市| 达日县| 新源县| 高安市| 新余市| 八宿县| 麻江县| 丰原市| 中西区| 吉林市| 友谊县| 秦皇岛市| 台州市| 大同县| 宽甸| 慈利县| 南通市| 乌拉特前旗| 慈溪市| 康保县| 乃东县| 洪泽县| 云林县| 永定县| 西安市| 天镇县| 定安县| 闻喜县| 桐乡市| 崇左市| 银川市| 高碑店市| 渭源县| 濉溪县| 铅山县| 泉州市| 句容市| 抚州市|