当前位置:
首页 >
原地随机排列数组
发布时间:2025/4/16
51
豆豆
在循环中,随机选择一个地址,跟目前的地址进行交换,达到排序的目的:
<span style="font-size:18px;">#include <stdio.h> #include <stdlib.h> #include <malloc.h> #include <time.h>void PrintArr(int *pnArr, int nLen) {for (int i = 0; i < nLen; i++){printf("%d ", pnArr[i]);}printf("\n"); }void Swap(int *p, int *q) {int nTmp = *p;*p = *q;*q = nTmp; }void RandomSort(int *pnArr, int nLen) {srand(time(NULL));for (int i = 0; i < nLen; i++){int nIndex = rand()%nLen;//随机产生的一个地址Swap(&pnArr[i], &pnArr[nIndex]);//当前的地址跟随机的地址的值进行交换} }int main() {int nArr[10] = {1,2,3,4,5,6,7,8,9,10};PrintArr(nArr, 10);RandomSort(nArr, 10);PrintArr(nArr, 10);system("pause");return 0; }</span>