LeaflLit 发表于 2022-2-10 17:48:13

S1E32 的动动手

请帮忙解答一下{:10_266:}

人造人 发表于 2022-2-10 18:23:39

发代码

LeaflLit 发表于 2022-2-10 18:45:32

人造人 发表于 2022-2-10 18:23
发代码

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

void bogo_sort(int array[], int length);
void shuffle(int array[], int length);
int in_order(int array[], int length);

void shuffle(int array[], int length)
{
        int temp, index, i;
        static int t1, t2;

    srand(t1);
    t1 = rand();

    t2 = time(NULL);
    srand(t1+t2);
       
        for(i = 0; i < length; i++)
        {
                index = rand() % (length - i) + i;
                if(i != index)
                {
                        temp = array;
                        array = array;
                        array = temp;
                }
        }
}

int in_order(int array[], int length)
{
        int i = 0;
       
        while(array <= array && ++i < length - 1)
        {
                ;
        }
       
        if(i == length - 1)
        {
                return 1;
        }
        else
        {
                return 0;
        }
}

void bogo_sort(int array[], int length)
{
        while(!in_order(array, length))
        {
                shuffle(array, length);
        }
}

int main(void)
{
      int array[] = {73, 108, 111, 118, 101, 70, 105, 104, 67};
      int i, length;
      time_t begin, end;

      begin = time(NULL);

      length = sizeof(array) / sizeof(array);
      bogo_sort(array, length);

      printf("排序后的结果是:");
      for (i = 0; i < length; i++)
      {
                printf("%d ", array);
      }
      putchar('\n');

      end = time(NULL);
      printf("总共耗时:%ld秒\n", end - begin);

      return 0;
}

LeaflLit 发表于 2022-2-10 18:46:18

人造人 发表于 2022-2-10 18:23
发代码

第一张图中间标红的是什么意思

ckblt 发表于 2022-2-10 18:48:43

LeaflLit 发表于 2022-2-10 18:46
第一张图中间标红的是什么意思

随机种子
页: [1]
查看完整版本: S1E32 的动动手