Arrays 如何在C中存储随机数以在shaker sort中对其进行排序
这是一个shaker排序的代码,它对元素数组进行排序,我不知道如何确保数组中的随机数在高范围内,比如10000,然后对它们进行排序,以检查平均情况下的效率。有人知道如何解决这个问题吗?C语言中是否有用于此的函数Arrays 如何在C中存储随机数以在shaker sort中对其进行排序,arrays,c,Arrays,C,这是一个shaker排序的代码,它对元素数组进行排序,我不知道如何确保数组中的随机数在高范围内,比如10000,然后对它们进行排序,以检查平均情况下的效率。有人知道如何解决这个问题吗?C语言中是否有用于此的函数 #include <stdio.h> #include <time.h> #include <stdlib.h> void swap(int *a, int *b){ int temp; temp = *a; *a = *b;
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void swap(int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void shakersort(int a[], int n)
{
int p, i;
for (p = 1; p <= n / 2; p++)
{
for (i = p - 1; i < n - p; i++)
if (a[i] > a[i+1])
swap(&a[i], &a[i + 1]);
for (i = n - p - 1; i >= p; i--)
if (a[i] < a[i-1])
swap(&a[i], &a[i - 1]);
}
}
void printArray(int arr[], int size)
{
int i;
for (i=0; i < size; i++)
printf("%d ", arr[i]);
}
int main()
{
clock_t start_time = clock();
int arr[] = {2,2,7,5,9,6};
int n = sizeof(arr)/sizeof(arr[0]);
shakersort(arr, n);
printf("Sorted array is:\n");
printArray(arr, n);
printf("\n");
clock_t end_time = clock();
printf("Elapsed: %f seconds\n", (double)(end_time - start_time) / CLOCKS_PER_SEC);
return 0;
}
#包括
#包括
#包括
无效交换(int*a,int*b){
内部温度;
温度=*a;
*a=*b;
*b=温度;
}
void shakersort(int a[],int n)
{
int p,i;
对于(p=1;pa[i+1])
掉期交易(&a[i]、&a[i+1]);
对于(i=n-p-1;i>=p;i--)
if(a[i]
如果您询问如何生成随机数并将其存储到数组中,则表示排序代码实际上并不相关。相反,你应该发布你解决问题的尝试。你到底不知道怎么做?生成一个随机数?创建一个数组?在数组中存储值?