数据结构与算法分析(C语言版)第二章习题2.7代码实现

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void swap(int *a,int *b)
{
    if(*a!=*b)
    {
        /*
         算法1
         *a+=*b;
         *b=*a-*b;
         *a-=*b;
         
         算法2
         *a*=*b;
         *b=*a/*b;
         *a/=*b;

         算法3
         tmp=*a;
         *a=*b;
         *b=tmp;

         算法4*/
        *a^=*b;
        *b^=*a;
        *a^=*b;
    }
}

int Random(int i,int j)
{
    if(i==0)
        return rand()%(j+1);
    else
        return rand()%(j-i+1)+i;
}

void randSwap1(int A[],int n)
{
    int i,j,rd;
    srand(time(0));
    for(i=0;i<n;i++)
    {
        rd=Random(1,n);
        for(j=0;j<i;j++)
        {
            if(rd==A[j])
            {
                j=-1;
                rd=Random(1,n);
            }
        } 
        A[i]=rd;  
    }
}

void randSwap2(int A[],int n)
{
    int i,rd,*used;
    used=(int*)malloc(n*sizeof(int));
    for(i=0;i<n;i++)
        used[i]=0;
    srand(time(0));
    for(i=0;i<n;i++)
    {
        rd=Random(1,n);
        while(1)
        {
            if(used[rd-1])
                rd=Random(1,n);
            else
                break;
        }
        A[i]=rd; 
        used[rd-1]=1;   
    }

}

void randSwap3(int A[],int n)
{
    int i;
    srand(time(0));
    for(i=0;i<n;i++)
        swap(A+i,A+Random(0,i));
}

int main()
{
    int i,n,*A;
    printf("n=");
    scanf("%d",&n);
    A=(int *)malloc(n*sizeof(int));
    randSwap1(A,n);
    for(i=0;i<n;i++)
        printf("%d ",A[i]);
    printf("\n\n");

    randSwap2(A,n);
    for(i=0;i<n;i++)
        printf("%d ",A[i]);
    printf("\n\n");

    randSwap3(A,n);
    for(i=0;i<n;i++)
        printf("%d ",A[i]);
    printf("\n\n");
    return 0;
}
时间: 2024-10-12 03:00:06

数据结构与算法分析(C语言版)第二章习题2.7代码实现的相关文章

概率论与数理统计严继高1版第二章习题答案(含过程)

这是严继高第一版的答案!!!!!!第二版博客也有目录里面找一下!!! 2.1-2.3和第二版的一样,链接https://www.cnblogs.com/cs-learn/p/9498711.html 以下是2.4-2.7 原文地址:https://www.cnblogs.com/cs-learn/p/9800368.html

具体数学第二版第二章习题(2)

16 $x^{\underline{n}}(x-n)^{\underline{m}}=x^{\underline{m}}(x-m)^{\underline{n}}=x^{\underline{n+m}}$ 17 当$m>0$时,有$x^{\overline{m}}=x(x+1)(x+2)..(x+m-2)(x+m-1)$ 当$m=0$时,有$x^{\overline{0}}=1$ 当$m<0$时,有$x^{\overline{m}}=\frac{1}{(x-1)(x-2)...(x-(|m|-

python核心编程第二版第二章习题

2.1 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 def test_sum(): tup=("1","2","3","6","5") sum=0 for i in tup: sum=float(i)+sum return sum def test11(): while True: string=raw_input(">>") if strin

《数据结构与算法分析—C语言描述》pdf

下载地址:网盘下载 内容简介 编辑 <数据结构与算法分析:C语言描述(原书第2版)>内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能.效率以及对运行时间分析的基础上考查了一些高级数据结构,从历史的角度和近年的进展对数据结构的活跃领域进行了简要的概括.由于<数据结构与算法分析:C语言描述(原书第2版)>选材新颖,方法实用,题例丰富,取舍得当.<数据结构与算法分析:C语言描述(原书第2版)>的目的是培养学生良好的程序设计技巧和熟练的算

数据结构与算法分析 c语言描述 pdf 高清下载

网盘下载:数据结构与算法分析 c语言描述 pdf 高清下载 – 易分享电子书PDF资源网 作者: [美] Mark Allen Weiss 出版社: 机械工业出版社 副标题: C语言描述 原作名: Data Structures and Algorithm Analysis in C:Second Edition 译者: 冯舜玺 出版年: 2004-1-1 页数: 391 定价: 35.00元 装帧: 平装 内容简介 · · · · · · 本书是<Data Structures and Alg

Python核心编程(第二版) 第二章习题答案 未完待续

2-2.程序输出.阅读下面的Python脚本.#!/usr/bin/env python1 + 2 * 4(a)你认为这段脚本是用来做什么的?(b)你认为这段脚本会输出什么?(c)输入以上代码,并保存为脚本,然后运行它,它所做的与你的预期一样吗?为什么一样/不一样?(d)这段代码单独执行和在交互解释器中执行有何不同?试一下,然后写出结果.(e)如何改进这个脚本,以便它能和你想象的一样工作?答:(a)这段脚本是用来计算表达式的值(b)脚本会输出9(c)保存为脚本,运行后没有输出.和自己预期不一样.

Python编程快速上手-让繁琐工作自动化-第二章习题及其答案

Python编程快速上手-让繁琐工作自动化-第二章习题及其答案 1.布尔数据类型的两个值是什么?如何拼写? 答:True和False,使用大写的T和大写的F,其他字母是小写. 2.3个布尔操作符是什么? 答:and.or和not. 3.写出每个布尔操作符的真值表(也就是操作数的每种可能组合,以及操作的结果) 答:and:True and True  -> True True and False -> FalseFalse and True -> FalseFasle and False

数据结构与算法分析_Java语言描述(第2版)pdf

下载地址:网盘下载 本书是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计). 随着计算机速度的不断增加和功能的日益强大,人们对有效编程和算法分析的要求也不断增长.本书将算法分析与最有效率的Java程序的开发有机地结合起来,深入分析每种算法,并细致讲解精心构造程序的方法,内容全面.缜密严格. 第3版的主要更新如下: ? 第4章包含AVL树删除算法的实现. ? 第5章进行了全面修订和扩充,现在包含两种较

数据结构与算法分析_Java语言描述(第2版)高清版pdf免费下载

下载地址:网盘下载 备用地址:网盘下载 内容简介编辑“数据结构”是计算机专业的基础与核心课程之一,Java是现今一种热门的语言.本书在编写过程中特别考虑到了面向对象程序设计(OOP)的思想与Java语言的特性.它不是从基于另一种程序设计语言的数据结构教材简单地“改编”而来的,因此在数据结构的实现上更加“地道”地运用了Java语言,并且自始至终强调以面向对象的方式来思考.分析和解决问题.本书是为数据结构入门课程(通常课号是CS-2)而编写的教材.作者Frank Carrano在编写过程自始至终特别