隨筆-109  評論-187  文章-25  trackbacks-0

          冒泡排序
          public class BubbleSort {
          ?public? static void sort(int[] data, int n) {
          ??int sortedNum = 0;
          ??int index;
          ??while (sortedNum < n) {
          ???for (index = 1; index < n - sortedNum; index++) {
          ????if (data[index - 1] > data[index]) {
          ?????int tmp;
          ?????tmp = data[index - 1];
          ?????data[index - 1] = data[index];
          ?????data[index] = tmp;

          ????}
          ???}
          ???sortedNum++;
          ??}
          ?}

          }
          選擇排序
          public class SelectSort {
          ?public static void sort(int[] data, int n) {
          ??int sortedNum = 0;
          ??int index;
          ??int maxIndex = 0;
          ??while (sortedNum < n) {
          ???for (index = 1; index < n - sortedNum - 1; index++) {
          ????if (data[maxIndex] < data[index]) {
          ?????maxIndex = index;
          ????}
          ???}
          ???int tmp;
          ???tmp = data[maxIndex];
          ???data[maxIndex] = data[n - sortedNum - 1];
          ???data[n - sortedNum - 1] = tmp;
          ???sortedNum++;

          ??}

          ?}

          }

          插入排序
          public class InsertSort {
          ?public static void sort(int[] data, int n) {
          ??int sortedNum = 1;
          ??int index;
          ??while (sortedNum < n) {
          ???int tmp = data[sortedNum];
          ???for (index = sortedNum; index > 0; index--) {
          ????if (tmp < data[index - 1]) {
          ?????data[index] = data[index - 1];
          ????} else {
          ?????break;
          ????}
          ???}
          ???//插入的他的位置
          ???//index就是找TMP的位置
          ???data[index] = tmp;
          ???sortedNum++;
          ???
          ???for(int i=0;i<n;i++){
          ????System.out.print(data[i]+",");
          ???}
          ???System.out.println("");
          ??}

          ?}

          }

          快速排序
          public class QuickSort {

          ?public static void sort(int[] data, int n) {
          ??quickSortRescursive(data, 0, n - 1);
          ?}

          ?private static void quickSortRescursive(int[] data, int left, int right) {

          ??int pos;
          ??if (left >= right)
          ???return;
          ??pos = getPos(data, left, right);
          ??// 排左邊的
          ??quickSortRescursive(data, left, pos - 1);
          ??quickSortRescursive(data, pos + 1, right);
          ?}

          ?private static int getPos(int[] data, int left, int right) {
          ??// 想左邊移動
          ??while (true) {
          ???//遇到右邊的大就忽略,并且縮小右邊范圍
          ???while (left < right && data[left] < data[right])
          ????right--;
          ???
          ???//遇到左邊的大就往右邊換
          ???if (left < right)
          ????swap(data, left++, right);
          ???else
          ????return left;
          //???遇到右邊的大就忽略,并且左邊縮小范圍
          ???while (left < right && data[left] < data[right])
          ????left++;
          ???if (left < right)
          ??? //遇到左邊的大就往右邊換
          ????swap(data, left, right--);
          ???// return left;

          ???else
          ????return right;
          ???// return 0;
          ??}

          ?}

          ?private static void swap(int[] data, int i, int j) {
          ??int tmp = data[i];
          ??data[i] = data[j];
          ??data[j] = tmp;

          ?}

          }

          posted on 2006-05-25 15:07 小小程序程序員混口飯吃 閱讀(377) 評論(0)  編輯  收藏 所屬分類: java
          <2006年5月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          隨筆分類

          java

          最新隨筆

          積分與排名

          • 積分 - 300767
          • 排名 - 194

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 和硕县| 山丹县| 苍梧县| 晋江市| 长丰县| 托克逊县| 河南省| 陵川县| 南安市| 永新县| 淄博市| 夏津县| 株洲市| 北海市| 华蓥市| 罗江县| 时尚| 乌什县| 黄大仙区| 琼结县| 竹溪县| 密山市| 大姚县| 老河口市| 明光市| 深水埗区| 沐川县| 昌图县| 临湘市| 永德县| 富裕县| 浦县| 望奎县| 湘阴县| 双柏县| 宁强县| 吴桥县| 芮城县| 克什克腾旗| 平江县| 六安市|