c语言用函数排序一维数组 c语音一维数组的排序

用C语言如何将一个一维数组中的元素随机排序

#include

创新互联建站云计算的互联网服务提供商,拥有超过13年的服务器租用、光华机房服务器托管、云服务器、虚拟空间、网站系统开发经验,已先后获得国家工业和信息化部颁发的互联网数据中心业务许可证。专业提供云主机、虚拟空间、主机域名、VPS主机、云服务器、香港云服务器、免备案服务器等。

#include

#include

intmain()

{

inti,j,n,k,t,a[100];

srand((unsigned)time(NULL));

p

利用rand()函数产生随机数字,rand()%n产生小于n的随机数,然后交换。

运行的结果:

#include

#include

intmain()

{

intnbs

利用rand()函数产生随机数字,rand()%n产生小于n的随机数,然后交换。

扩展资料

C语言排序法

在一层循环找出最小数的下标,该下标用min保存,直到比较完整个数组,即可找到最小的数,然后将该数放入数组的第一位。

这样只能排好一个元素,于是需要再嵌套一层外层循环即可排好所有元素。第二次循环就不用再比较第一个元素了,因为第一个元素已经排好,依次类推,每一次循环就会排好一个,进行n-1次循环即可排好所有元素。

C语言中通过函数调用对一维数组进行排序

#include stdio.h

#include stdlib.h

#include time.h

#define MAXlen 100

void select_sort(int *x, int n) { //选择排序

int i, j, min;

int t;

for (i = 0; i n - 1; i++) { // 要选择的次数:0~n-2共n-1次

min = i; // 假设当前下标为i的数最小,比较后再调整

for (j = i + 1; j n; j++) { //循环找出最小的数的下标是哪个

if (*(x + j) *(x + min)) {

min = j; // 如果后面的数比前面的小,则记下它的下标

}

}

if (min != i) { // 如果min在循环中改变了,就需要交换数据

t = *(x + i);

*(x + i) = *(x + min);

*(x + min) = t;

}

}

}

int main() {

int i;

int iArr[MAXlen];

srand((unsigned int)time(NULL));

printf("\n排序前:\n");

for(i = 0 ; i MAXlen ; i++) {

iArr[i] = (unsigned int)rand() % 1000;

if(i % 10 == 0) printf("%\n");

printf("%5d",iArr[i]);

}

printf("\n");

select_sort(iArr,MAXlen);

printf("\n排序后:\n");

for(i = 0 ; i MAXlen ; i++) {

if(i % 10 == 0) printf("%\n");

printf("%5d",iArr[i]);

}

printf("\n\n");

return 0;

}

C语言一维数组排序

今天为嘛总是见到最后这句话……

初学者……冒泡呗,两个数据都冒。两个for循环,两趟比较,每趟把最大的放最前面(或者最小的放最后面,我感觉都一样)交换的时候,把两个都同时交换了就好……


网站标题:c语言用函数排序一维数组 c语音一维数组的排序
标题来源:http://pwwzsj.com/article/ddoojcs.html