Dev@Free

          zJun's Tech Weblog

          [排序] 選擇排序

          選擇排序的思想和插入排序差不多,都是先把排序的對象分作兩組,不同點在于選擇排序 將要排序的對象 分作一個是已排序的,一個是未排序的,從后端未排序部份選擇一個最小值,并放入前端已排序部份的最后一個。

          [例子]

          排序前: 70 80 31 37 10 1 48 60 33 80
          1.????? [1] 80 31 37 10 70 48 60 33 80 選出最小值
          1
          2.????? [1 10] 31 37 80 70 48 60 33 80 選出最小值
          10
          3.????? [1 10 31] 37 80 70 48 60 33 80 選出最小值
          31
          4.?????
          [1 10 31 33] 80 70 48 60 37 80 ......
          5.?????
          [1 10 31 33 37] 70 48 60 80 80 ......
          6.?????
          [1 10 31 33 37 48] 70 60 80 80 ......
          7.?????
          [1 10 31 33 37 48 60] 70 80 80 ......
          8.?????
          [1 10 31 33 37 48 60 70] 80 80 ......
          9.?????
          [1 10 31 33 37 48 60 70 80] 80 ......

          [代碼]

          /** ?
          ??*?選擇排序
          ??*??
          @param
          ??data:等待排序整型數組
          ??*??
          ??*??data?=?{70,?81,?31,?37,?10,?1,?48,?60,?33,?80}
          ??*??排序結果:??
          ??*????????第?1?次排序:81?70?31?37?10?1?48?60?33?80?
          ??*????????第?2?次排序:81?80?31?37?10?1?48?60?33?70?
          ??*????????第?3?次排序:81?80?70?37?10?1?48?60?33?31?
          ??*????????第?4?次排序:81?80?70?60?10?1?48?37?33?31?
          ??*????????第?5?次排序:81?80?70?60?48?1?10?37?33?31?
          ??*????????第?6?次排序:81?80?70?60?48?37?10?1?33?31?
          ??*????????第?7?次排序:81?80?70?60?48?37?33?1?10?31?
          ??*????????第?8?次排序:81?80?70?60?48?37?33?31?10?1?
          ??*????????第?9?次排序:81?80?70?60?48?37?33?31?10?1?
          ???
          */
          ?
          public ? void ?selectSort( int []?data)?
          {
          ????????
          int ?max? =
          ?data.length;
          ????????
          int
          ?m,?temp;

          ????????
          for ?( int ?i? = ? 0 ;?i? < ?max? - ? 1 ;?i ++ )?
          {
          ????????????m?
          =
          ?i;
          ????????????
          for ?( int ?j? = ?i? + ? 1 ;?j? <= ?max? - ? 1 ;?j ++ )?
          {
          ????????????????
          if ?(data[j]? > ?data[m])?
          {
          ????????????????????m?
          =
          ?j;
          ????????????????}

          ????????????}


          ????????????
          if ?(m? != ?i)? {
          ????????????????temp?
          =
          ?data[i];
          ????????????????data[i]?
          =
          ?data[m];
          ????????????????data[m]?
          =
          ?temp;
          ????????????}


          ????????????System.out.print(
          " 第? " ? + ?(i? + ? 1 )? + ? " ?次排序: " );
          ????????????
          for ?( int ?k? = ? 0 ;?k? <= ?max? - ? 1 ;?k ++ )?
          {
          ????????????????System.out.print(data[k]?
          + ? " ? "
          );
          ????????????}

          ????????????System.out.println();
          ????????}

          ????}

          posted on 2006-07-13 11:30 zJun's帛羅閣 閱讀(462) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          <2006年7月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          統計

          常用鏈接

          留言簿(15)

          隨筆分類

          隨筆檔案

          相冊

          收藏夾

          博客

          文檔

          站點

          論壇

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 锦屏县| 海原县| 美姑县| 曲水县| 繁昌县| 定陶县| 嘉善县| 青川县| 千阳县| 尖扎县| 大渡口区| 施秉县| 安阳县| 巢湖市| 葵青区| 泸定县| 确山县| 根河市| 旺苍县| 汉川市| 张家川| 邹平县| 清涧县| 沈阳市| 蕉岭县| 保山市| 牙克石市| 山丹县| 天津市| 固阳县| 闸北区| 涡阳县| 灌云县| 康平县| 大城县| 同心县| 清新县| 巢湖市| 资讯 | 太和县| 蛟河市|