隨筆 - 0, 文章 - 75, 評論 - 0, 引用 - 0
          數(shù)據(jù)加載中……

          java冒泡排序和選擇排序(面試題)

          冒泡排序缺點:時刻比較,性能不好



          冒泡排序特點:第一次循環(huán)結(jié)束,確定最大的在最后,以此類推


          選擇排序特點:第一次從R[0]~R[n-1]選最小值,與R[0]交換,以此類推


          public class TextSort {



          public static void main(String[] args) {
          int[]
          arrs={15,222,30,50,2,66};
          System.out.println("排序前:");
          for (int i = 0; i < arrs.length; i++) {
          System.out.println(arrs[i]);
          }

          //選擇排序
          int out,in; //定義外層循環(huán)變量out和內(nèi)層循環(huán)變量in
          int min;
          //定義最小值
          for(out=0;out<arrs.length-1;out++){
          //使用arrs.length-1 目的是不循環(huán)最后的數(shù),


          //因為子循環(huán)內(nèi),包含遍歷最后一個數(shù),省略一個判斷步驟
          min=out;
          //假設最小數(shù)的索引為第out個
          for(in=out+1;in<arrs.length;in++){
          //內(nèi)層循環(huán)從out+1開始
          if(arrs[in]<arrs[min]){
          //如果得到比arrs[min]還小的數(shù)
          min=in;
          //將比較小的數(shù)的索引,給min
          }
          }
          if(min!=out){
          //如果這個索引不是第out項(當前指定的最小數(shù)min=out)則交換,省略一個交換步驟
          arrs[out]=arrs[out]+arrs[min];
          //不用第三個變量實現(xiàn)交換
          arrs[min]=arrs[out]-arrs[min];
          arrs[out]=arrs[out]-arrs[min];
          }
          }



          System.out.println("排序后:");
          for
          (int i = 0; i < arrs.length; i++)
          {
          System.out.println(arrs[i]);
          }
          }


          }
          --------------------------------------------


          補充:


          兩個數(shù)值變換,不定義第三個變量,實現(xiàn)互換操作


          int a=1;


          int b=2;


          a=a+b;


          b=a-b; //獲得a


          a=a-b; //獲得b


          上述例子中:


          可以不用min接收最小數(shù)


          代碼改為:


          arrs[i]=arrs[i]+arrs[j];


          arrs[j]=arrs[i]-arrs[j];
          arrs[i]=arrs[i]-arrs[j];

          posted on 2012-04-22 15:19 hantai 閱讀(268) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           
          主站蜘蛛池模板: 公主岭市| 九江县| 花莲县| 泰顺县| 山丹县| 航空| 栖霞市| 静宁县| 琼中| 襄垣县| 梅河口市| 大荔县| 手游| 镇宁| 聂拉木县| 罗源县| 万年县| 铜陵市| 江都市| 外汇| 长宁县| 电白县| 平乐县| 丹东市| 旬邑县| 东乡县| 江源县| 巴中市| 建宁县| 邻水| 广昌县| 林芝县| 女性| 大冶市| 共和县| 安溪县| 长沙县| 阳朔县| 迭部县| 彝良县| 翼城县|