zoukankan      html  css  js  c++  java
  • 将数组所有整数排在负数之前

    原题

    设任意n个整数存放于数组A中,编写程序,将所有整数排在所有负数前面。

    思路

    题目超级水,直接上代码了。

    实现代码

    /*************************************************************************
        > File Name: testmain.c
        > Author: KrisChou
        > Mail:zhoujx0219@163.com 
        > Created Time: Mon 18 Aug 2014 12:26:34 AM CST
     ************************************************************************/
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    
    void print(int *arr, int n);
    void partion(int *arr, int n);
    
    int main(int argc, char *argv[])
    {
        int size = atoi(argv[1]);
        int *arr = (int*)calloc(size,sizeof(int));
        int index;
        srand(time(NULL));
        for(index = 0; index < size; index++)
        {
            if(rand()%2 == 0)
            {
                arr[index] = rand()%100;
            }else
            {
                arr[index] = - rand()%100;
            }
    
        }
        print(arr,size);
        partion(arr,size);
        print(arr,size);
    
        return 0;
    }
    
    void print(int *arr, int n)
    {
        int index;
        for(index = 0; index < n; index++)
        {
            printf("%4d",arr[index]);
        }
        printf("
    ");
    }
    
    /**
     * 如果low++,使得low与high相遇,那么low左边元素已在正确位置,high右边元素(包括high)也在正确位置,finish。
     * 如果high--,使得low与high相遇,那么low左边元素(包括low)已在正确位置,high右边元素也在正确位置,finish。
     */
    void partion(int *arr, int n)
    {
        int low = 0;
        int high = n - 1;
        int tmp;
        while(low < high)
        {
            while(low < high && arr[low] >= 0)
            {
                low++;
            }
            if(low == high)
            {
                break;
            }
            while(low < high && arr[high] < 0)
            {
                high--;
            }
            if(low < high)
            {
                tmp = arr[low];
                arr[low] = arr[high];
                arr[high] = tmp;
            }
        }
    }
  • 相关阅读:
    oracle体系结构
    Oracle表连接(转)
    Oracle的RBO和CBO
    Linux下安装Tomcat服务器和部署Web应用
    动态创建selectjs 操作select和option
    JS中如何获取<Select>中value和text的值
    原生JavaScript事件详解
    动态添加select的option
    js 动态加载事件的几种方法总结
    js实现select动态添加option
  • 原文地址:https://www.cnblogs.com/jianxinzhou/p/3918626.html
Copyright © 2011-2022 走看看