• 剑指Offer12 数组奇数调整至偶数前


     1 /*************************************************************************
     2     > File Name: 12_ReorderArray.c
     3     > Author: Juntaran
     4     > Mail: JuntaranMail@gmail.com
     5     > Created Time: 2016年08月30日 星期二 15时15分42秒
     6  ************************************************************************/
     7 
     8 #include <stdio.h>
     9 #include <stdlib.h>
    10 
    11 // 所有奇数放在偶数前面
    12 void ReorderOddEven(int* nums, int length)
    13 {
    14     if (length <= 0)
    15         return;
    16     
    17     int left  = 0;
    18     int right = length - 1;
    19     
    20     while (left < right)
    21     {
    22         // 从左向右找第一个偶数
    23         while (nums[left] % 2 != 0)
    24             left ++;
    25         
    26         // 从右向左找第一个奇数
    27         while (nums[right] %2 == 0)
    28             right --;
    29         
    30         if (left < right)
    31         {
    32             int temp = nums[left];
    33             nums[left]  = nums[right];
    34             nums[right] = temp;
    35         }
    36     }
    37 }
    38 
    39 void PrintNums(int* nums, int length)
    40 {
    41     for (int i = 0; i < length; ++i)
    42         printf("%d ", nums[i]);
    43     
    44     printf("
    ");
    45 }
    46 
    47 int main()
    48 {
    49     int nums[] = {1, 2, 3, 4, 5, 6};
    50     int length = 6;
    51     
    52     PrintNums(nums, length);
    53     ReorderOddEven(nums, length);
    54     PrintNums(nums, length);
    55     
    56     return 0;
    57 }
  • 相关阅读:
    使用Dorado框架开发必备参考
    Dorado重用最佳实践
    css布局_web
    dorado学习笔记(二)
    Oracle归档日志删除
    给大家拜年啦!
    悟透JavaScript
    BCM57781网卡驱动下载地址
    win7安装jdk完后配置
    win7删除SVN保存的本地密码
  • 原文地址:https://www.cnblogs.com/Juntaran/p/5823149.html
Copyright © 2020-2023  润新知