某某茶叶有限公司欢迎您!
金沙棋牌在线 > 操作系统 > 设计将数组A[1][n]中所有奇数移到偶数之前的算法

设计将数组A[1][n]中所有奇数移到偶数之前的算法

时间:2020-01-25 02:01

设计将数组A[1][n]中所有奇数移到偶数之前的算法,不另外增加存储空间,时间复杂度为o(n)

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

题目:

给定一个长度不小于2的数组arr,实现一个函数调整arr,要么使所有的偶数下标都是偶数,要么使所有的奇数下标都是奇数。

要求:时间复杂度为O(N),额外空间复杂度为O(1)。

/********************************************************

        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        double sum = 0;
        if (num%2!=0) {
            for (int i = 1; i <= num; i=i+2) {
                sum += 1.0/i;
                System.out.print(1+"/"+i+"t");
                System.out.print(1.0/i+"t");
                System.out.println("");
            }
        }else {
            for (int i = 2; i <= num; i=i+2) {
                sum += 1.0/i;
                System.out.print(1+"/"+i+"t");
                System.out.print(1.0/i+"t");
                System.out.println("");
            }
        }
        System.out.println(sum);

程序:

  public static void modify(int[] arr) {

     if (arr == null || arr.length < 2) {

         return;

     }

     int even = 0;

     int odd = 1;

     int end = arr.length - 1;

     while (even <= end && odd <= end) {

         printArray(arr);

         if ((arr[end] & 1) == 0) {

             swap(arr, end, even);

             even += 2;

         } else {

             swap(arr, end, odd);

             odd += 2;

         }

     }

 }

   public static void swap(int[] arr, int index1, int index2) {

     int tmp = arr[index1];

     arr[index1] = arr[index2];

     arr[index2] = tmp;

 }

   public static void printArray(int[] arr) {

     for (int i = 0; i != arr.length; i++) {

         System.out.print(arr[i] + " ");

     }

     System.out.println();

 }

算法:

源码

必赢棋牌官网,从第一个数开始,如果是偶数,与最后一个数交换,同时将最后一个数排除出去,不用处理了;如果是奇数的话,就继续下一次循环....这样进行下去,直到这个数是应该处理的数的最后一个为止

 

**************************************************************/

#include <stdio.h>

#define SIZE 10

void sort(int a[],int n)

{

        int i,len,temp;

        len=n-1;

        for(i=0;i<len;)