国产探花免费观看_亚洲丰满少妇自慰呻吟_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] + " ");
  }
 }
}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪陇县| 中牟县| 喀喇沁旗| 安庆市| 航空| 舟山市| 涡阳县| 化德县| 阳高县| 鹤山市| 通州区| 桂平市| 民丰县| 湖北省| 托克托县| 双鸭山市| 石阡县| 息烽县| 陆川县| 万州区| 溆浦县| 敖汉旗| 丁青县| 南漳县| 科技| 偃师市| 巫溪县| 大方县| 安龙县| 佛坪县| 石景山区| 龙井市| 九寨沟县| 山东| 呼图壁县| 尼木县| 安庆市| 信丰县| 福鼎市| 玉龙| 阿拉善盟|