zoukankan      html  css  js  c++  java
  • 把一个数组划分成左边奇数右边偶数

    题目要求:把一个数组分成左边奇数右边偶数。要求效率尽量高。

    代码如下:

    #include <iostream>

    using namespace std;

    /*两数交换函数*/

    void swap(int &a,int &b){
          int temp = a;
          a = b;
          b = temp;
    }

    /*划分函数*/

    void partition_odd_even(int a[], int count){
           int low = 0;
           int high = count -1;
           while(low <= high){
                  while(a[low] % 2 == 1)
                         low++;
                  while(a[high] % 2 == 0)
                         high--;
                  swap(a[low],a[high]);
                  low++;
                  high--;
          }
    }

    /*打印数组函数*/

    void printarray(int a[], int count){
            for(int i =0; i < count; i++){
            cout<<a[i]<<"  ";
     }
    }
    int main(){
            int array[] = {1,2,3,4,5,6,7,8};
            int count = sizeof(array)/sizeof(int);
     
            printarray(array,count);
            partition_odd_even(array,count);
            cout<<endl;
            printarray(array,count);
      
            return 0;
    }

  • 相关阅读:
    图论复习
    数据结构复习
    数学复习
    字符串算法复习
    还有9天就要走了
    JS 多个一维数组排例组合的所有可能
    PHP 多个一维数组排列组合的所有可能
    维护DOWNID
    LINUX
    Multiple Versions of PHP run on server
  • 原文地址:https://www.cnblogs.com/guotao/p/2998647.html
Copyright © 2011-2022 走看看