#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include<memory.h>
#include <time.h>
int mysort(int N,int s, int *a);
void random(int a[], int n) ;
int main(){
const int N = 1024 ;
const int loopMax = N/2 ;
const int s = floor(sqrt((float)(N/2))) ;
int loop ;
int len =N ;
int gen = 0 ;
int a[N] ;
while(len != 0){
loop = 0 ;
len = N ;
gen ++ ;
for (int i=0 ;i<N ; i++){ //又重新生成一个随机数组
a[i]=i+1;
}
random(a, N);//打乱数组
while( len !=0 && loop <loopMax ){
len = mysort(N,s,a) ;
loop ++ ;
}
}
//int a[10]= {3,2,7,6,1,5,8,9,10,4};
//len = mysort (10,2,a) ;
printf("find it !!! loop = %d ,gen = %d \n",loop ,gen ) ;
//printf("产生的数据是:") ;
//for(int i = 0 ;i<N ;i++)
//printf("%d ",a[i]) ;
return 0;
}
void random(int a[], int
用C语言实现s随机交织(修改版)
最新推荐文章于 2023-05-12 23:12:27 发布
该博客介绍了一个使用C语言实现的随机交织排序算法,通过不断打乱数组并进行特定条件的比较来达到排序的目的。算法核心在于每次查找满足特定间距条件的元素进行交换,直到整个数组满足排序条件。在代码中,`mysort`函数负责排序,`random`函数用于打乱数组。
摘要由CSDN通过智能技术生成