国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

數組重排序(如何將所有奇數都放在所有偶數前面)的深入分析

2019-11-26 16:03:49
字體:
來源:轉載
供稿:網友
這里介紹一種高效的能在O(n)時間復雜度內完成的算法。
核心思想是:定義兩個指針,一個指針A從前往后掃描,一個指針B從后往前掃描。指針A掃描到偶數暫停,指針B掃描到奇數暫停,然后交換著兩個數,交換之后繼續如上述掃描和交換,直到指針A和指針B重合停止。
這個算法的Java代碼如下:
復制代碼 代碼如下:

package Reorder;
public class Reorder {

 public static void main(String[] args) {
  int[] list = { 1, 2, 3, 4, 5, 7, 9, 11 };
  reorderOddEven(list);
 }
 public static void reorderOddEven(int[] list) {
  int length = list.length;
  for (int i = 0; i < length; i++) {
   System.out.print(list[i] + " ");
  }
  System.out.print("/n");
  int begin = 0;
  int end = length - 1;
  while (begin < end) {
   while (begin < end && (list[begin] & 0x1) != 0)
    begin++;
   while (begin < end && (list[end] & 0x1) == 0)
    end--;
   if (begin < end) {
    int temp = list[begin];
    list[begin] = list[end];
    list[end] = temp;
   }
  }
  for (int i = 0; i < length; i++) {
   System.out.print(list[i] + " ");
  }
 }
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北辰区| 清新县| 玉门市| 青海省| 福州市| 黎川县| 麻城市| 上栗县| 高雄县| 怀来县| 稻城县| 礼泉县| 广德县| 陇南市| 晋江市| 中超| 昌黎县| 甘南县| 岳西县| 绥化市| 五大连池市| 江源县| 安陆市| 乐至县| 昭觉县| 托克托县| 宜君县| 洪雅县| 长葛市| 溆浦县| 汉阴县| 昭觉县| 松潘县| 呈贡县| 邓州市| 雷波县| 右玉县| 黔西县| 昌平区| 久治县| 麻江县|