C语言 打乱数组

384. 打乱数组 本题主要涉及到对数组的操作和随机化算法。可以使用Fisher-Yates洗牌算法来实现数组的随机打乱。,设计一个算法来随机打乱这个数组。 阅读详情

打乱数组

代码

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

void disorganise(int a[], int len);
void exchange(int* a, int* b);

int main(void)
{
    int a[] = {1,2,3,4,5,6,7,8,9,10,11,12,13,};
    int len = ( sizeof(a) / sizeof(a[0]) );

    disorganise(a, len);

    for (int i = 0; i < len; i++) {
        printf("%d:\t%d\n", i, a[i]);
    }

    return 0;
}

void disorganise(int a[], int len)
{
    srand( time(NULL) );
    int rN1 = (rand() % len);
    int rN2 = (rand() % len);
    for (int i = 0; i < 20; i++) {
        if (rN1 != rN2) {
            exchange(&a[rN1], &a[rN2]);
        }
        rN1 = (rand() % len);
        rN2 = (rand() % len);
    }
}

void exchange(int* a, int* b)
{
    int t;
    t = *a;
    *a = *b;
    *b = t;
}

输出样例

0: 7

1: 12

2: 5

3: 4

4: 2

5: 8

6: 6

7: 3

8: 10

9: 11

10: 9

11: 13

12: 1

输出结果随机

C语言打乱文章的顺序 立即下载

相关推荐

华为等安卓手机的vcf无法导入苹果的iCloud 通讯录

华为等安卓手机的vcf无法导入苹果的iCloud 通讯录

Guocean 8619

【C学习笔记】数组随机打乱顺序

每天学点C:数组随机打乱顺序 #define _CRT_SECURE_NO_WARNINGS #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; void MakeRand(int arr[], int count) { srand((unsigned int)time(NULL)); /...

黄仁来的博客 5675

大数据架构中的数据血缘追踪技术解析

数据血缘(Data Lineage)是指数据从源头到目标的完整流转路径,它记录了数据在整个生命周期中的变化过程。在大数据架构中,数据血缘追踪技术已经成为数据治理的核心组成部分。本文旨在全面解析数据血缘追踪的技术原理、实现方法和应用实践,帮助读者深入理解这一关键技术。本文将从基础概念入手,逐步深入到技术实现细节,最后探讨实际应用和未来趋势。数据血缘的核心概念和技术原理数据血缘的数学模型和算法实现实际项目案例和代码解析主流工具和解决方案比较未来发展方向和技术挑战。

架构师的AI之路,分享AI应用开发架构的学习与实践。 689

打乱数组

打乱数组 给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组。 实现 Solution class: Solution(int[] nums) 使用整数数组 nums 初始化对象 int[] reset() 重设数组到它的初始状态并返回 int[] shuffle() 返回数组随机打乱后的结果 示例: 输入 [“Solution”, “shuffle”, “reset”, “shuffle”] [[[1, 2, 3]], [], [],[]] 输出 [null, [3, 1, 2]

weixin_43014149的博客 754

搭建Java集成开发环境IntelliJ IDEA

package net.huawei.p01.t02;/** * 功能:输出一条信息 * 作者:华卫 * 日期:2022年03月24日 */ public class HelloWorld { public static void main(String[] args) { // arguments System.out.println("Hello Java World~"); } }

qq_67308063的博客 476

IDEA出现闪退或打不开的解决方法

本身项目比较大,为了打开这个软件,可调节IDEA中安装的bin目录下有个。打开IDEA的时候过一会便闪退,可以再IDEA的右下角看到如下提示。(如果没有该提示,软件右下角也会有个红色感叹号,点开查看原因即可)闪退的多数原因大致是out of memory,内存溢出。查看任务管理器中的进程:(发现内存随时有溢出的情况)但也需要注意,该参数并不是越大越好,适中即可。只有个别原因是需要管理员权限就可执行!可以尽量减少软件的启动。

码农研究僧的博客 5945

打乱数组顺序的三种方法

打乱数组顺序的三种方法 sort排序法(最简单的打乱数组顺序的方法) 原理: 利用sort用法:arr.sort(compareFunction) 如果 compareFunction(a,b) 返回的值大于 0 ,则 b 在 a 的前边; 如果 compareFunction(...

liNewman的博客 8726

基于泰勒展开改进的物理信息神经网络

基于泰勒展开改进的物理信息神经网络

天天酷科研的博客 504

【实用算法】如何随机打乱一个数组?

题目背景: 给你一个整数数组 nums ,设计算法来打乱一个没有重复元素的数组,要求每个数组排列返回的概率相同。 常规思路:暴力求解 将数组中所有的数都放到数据结构 waiting 中,并初始化打乱后的数组shuffle。 循环n次,在第i次循环中(0 < i < n): 在waiting中随机抽取一个数num,将其作为打乱后的数组shuffle的第i个元素; 从waiting中移除num; public int[] shuffle() { //初始化打乱后的数组 int

weixin_43363720的博客 1903

基于STM32设计的智能水产养殖系统(2025)_359

本设计提出并实现了一种基于STM32F103RCT6微控制器的智能水产养殖控制系统,针对传统水产养殖中人工依赖高、环境参数监测滞后、控制手段单一等问题,集成了TDS水质检测、水温检测、水位监测、自动喂食、自动充氧、换水控制与加热保温等功能。系统采用ESP8266模块实现WIFI联网,通过MQTT协议将关键数据上传至华为云物联网平台,支持Android手机APP和Windows上位机远程监测与控制。同时,系统具备本地LCD数据显示与蜂鸣器异常报警功能,支持本地按键控制操作。整套系统功能完善,响应灵敏,运行稳定

626

prplOS介绍

介绍prplOS是什么,特性、框架、编译等。

四儿家的小祖宗的博客 2134

C语言打乱数组(个人练习)

【代码】C语言打乱数组(个人练习)

SQDKC的博客 271

汽车UDS诊断之诊断会话控制服务(0x10)深度剖析

DiagnosticSessionControl就是诊断会话控制。 请求消息定义 A_Data类型 参数名称 Cvt 字节值 助记符 #1 诊断会话控制请求SID M 0x10 DSC #2 子功能=[诊断会话类型] M 0x00-0xFF LEV_DS_ ...

心骗小白话的博客 7420

用c语言将打乱的字母排序好,C语言打乱数组中的元素顺序

nclude #include #include #define ARRAY_MAX 20int InitArray(int *,int);int PrintArray(int *,int);int SwapElem(int *,int,int);int ShuffleArray(int *,int);int QuickSort(int *,int,int);int Partition(int *...

weixin_42517607的博客 822

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C语言 数组排序 打乱 查找

适用人群:针对像本人这种刚踏入IT深坑的小菜菜

angel_baram的专栏 1544

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

打乱数组中所有数据的顺序——随机值

定义一个数组,录入5个数,打乱数组中所有数据的顺序。

2403_88215323的博客 286

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

打乱数组内顺序

数组长度有限制,限定范围可以通过取余数(比如我现在想生成0-2的数字,种子为7,13,7%3=2,13%3=1,其对任何数取余数都只有0,1,2三个值)所以规律很明显,想生成0-t的数字,x%(t+1)即可,想生成1-t,x%t+1即可(取余运算优先,对几求余就会生成几个数,第一个规律因为0也算数字)在头文件中定义,用time函数即可获取时间(从1970一天开始算),time()括号内填的是指针,若只想获得到现在总共时间,括号内填NULL或者0即可,用srand()的括号中呈放种子。

XinSuiFengYePiao的博客 839

//打乱数组中的数据//需求:定义一个数组,存入1~5.要求打乱数组中所有数据的顺序

/和随意索引位置的数做交换。//需求:定义一个数组,存入1~5.要求打乱数组中所有数据的顺序。//打乱数组中的数据。

2301_79017161的博客 328

C语言 | Leetcode C语言题解之第384题打乱数组

C语言 | Leetcode C语言题解之第384题打乱数组

m0_59237910的博客 862

c语言:3、数组

c语言:3、数组1、简介1.1、声明一个数组1.2、初始化数组2、遍历数组注意 1、简介 数组是一块连续的,大小固定并且里面的数据类型一致的内存空间。 1.1、声明一个数组 int arr[10]; 1.2、初始化数组 //初始化方式1 //数据类型 数组名称[长度n] = {元素1,元素2…元素n}; int arr[3] = {1,2,3}; //初始化方式2 //数据类型 数组名称[] = {元素1,元素2…元素n}; int arr2[] = {1,2,3,4}; //初始化方式3 //数据类

weixin_36020178的博客 357

c语言将一个数组随机打乱,iOS开发关于随机数及数组随机取元素,数组随机排序...

iOS开发关于随机数及数组随机取元素,数组随机排序一、随机数产生随机数的四种方法rand()random()arc4random()arc4random_uniform()rand()在标准的C库中 rand() 函数可以生成 0~RAND_MAX 之间的一个随机数,其中 RAND_MAX 是 stdlib.h 中定义的一个整数,它与系统有关。因为 rand() 函数是按指定的顺序来产生整数,因此...

weixin_42496225的博客 972

C语言中的数组

本篇文章会详细地介绍数组和指针的相关语法,以及指针与数组的常见运用。一维数组的定义:数组中存储元素的类型 数组名[ 数组长度 ]={ 存 储的元素 };二维数组的定义:数组中存储元素的类型 数组名[ 行数 ][ 列数 ]={存储的元素};int main()注意:1.数组名的命名规则同变量名的。2.一维数组/二维数组的所有元素是存储在一个连续的空间里,二维数组中存储的是多个一维数组。3. 一旦定义了,那么该数组的长度就是固定不变的。

2401_85660523的博客 2366

c语言(7.21)

/原版:scanf_s("%d %d %d %d %d", &arr[0], &arr[1], &arr[2], &arr[3], &arr[4]);//定义一个数组,存入1,2,3,4,5,然后打乱数组中所有数据的顺序(本质上是随机交换两个变量)//注意:这个过程不是双向的,arr[0]=arr[4],此时arr[4]还是arr[4]//因为这样arr[len - 1 - i]的值并没有变,变的是temp的值。//随机数的范围正好是数组索引的范围。//交换:你给我,我给你。今天学习了反转数组,

fhgfyrsg的博客 872

【C语言】27_插入排序 & 冒泡排序 & 希尔排序 & 归并排序 & 快速排序 & 选择排序 & 堆排序 & 数组打乱函数

【代码】【C语言】27_插入排序 & 冒泡排序 & 希尔排序 & 归并排序 & 快速排序 & 选择排序 & 堆排序 & 数组打乱函数。

m0_46301523的博客 365

C语言数组基础小练习

本文举例了5 个 C 语言数组基础小练习,并对每一道题目进行了详细的说明。

goal11111的博客 1105

总结最近学习成果12-数组打乱顺序

有序数组打乱顺序 //种随机数种子,每次随机位置和i位置交换 void print(int* arr){ srand(time(0)); int t; for (int i = 0; i < 10; i++){ int s = rand() % 10; t = arr[i]; arr[...

RyanXTY的博客 264
下一篇: C语言 韩信点兵
AimerNeige
博客等级 码龄7年 33粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值