随机生成1000个整数(rand0),输出到文件里 2,将这1000个数字排序,输出到另一个文件里
时间: 2024-03-07 17:47:25 浏览: 71
好的,我明白了。以下是 Python 代码实现:
```python
import random
# 生成1000个随机整数
rand_nums = []
for i in range(1000):
rand_nums.append(random.randint(0, 1000))
# 写入文件1
with open('file1.txt', 'w') as f:
f.write('\n'.join(map(str, rand_nums)))
# 排序
sorted_nums = sorted(rand_nums)
# 写入文件2
with open('file2.txt', 'w') as f:
f.write('\n'.join(map(str, sorted_nums)))
```
以上代码中,我们使用 Python 的 random 模块来生成 1000 个随机整数。接着,我们将这些随机整数写入文件1中,每个整数一行。然后,我们使用 Python 的 sorted 函数将这些随机整数排序,并将排序后的结果写入文件2中,同样每个整数一行。
请注意,在代码中,我们将整数转换为字符串并使用 '\n' 连接,以便在文件中每个整数单独占一行。
相关问题
用c语言实现随机生成1000个整数(rand0),输出到文件里 2,将这1000个数字排序,输出到另一个文件里
好的,以下是 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUMS_COUNT 1000 // 数字的个数
int cmpfunc(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
int main() {
int rand_nums[NUMS_COUNT];
FILE* fp;
// 生成随机数并写入文件1
fp = fopen("file1.txt", "w");
srand(time(NULL));
for (int i = 0; i < NUMS_COUNT; i++) {
rand_nums[i] = rand() % 1000;
fprintf(fp, "%d\n", rand_nums[i]);
}
fclose(fp);
// 对随机数排序并写入文件2
qsort(rand_nums, NUMS_COUNT, sizeof(int), cmpfunc);
fp = fopen("file2.txt", "w");
for (int i = 0; i < NUMS_COUNT; i++) {
fprintf(fp, "%d\n", rand_nums[i]);
}
fclose(fp);
return 0;
}
```
在这个 C 语言实现中,我们使用了标准库函数 qsort 对随机数进行排序。我们还使用了 srand 函数,将时间作为种子,以便每次生成的随机数序列都不一样。
在代码中,我们先将生成的随机数写入文件1中,每个整数一行。然后,我们使用 qsort 函数对数组进行排序,并将排序后的结果写入文件2中,同样每个整数一行。
请注意,在代码中,我们使用 fprintf 函数向文件中写入整数,使用 \n 作为每个整数的分隔符。
用c语言实现随机生成1000个整数(rand0),输出到文件里 ,将这1000个数字分别进行合并排序和快速排序,输出到另一个文件里,并比较两种方法的实际运行时间
好的,以下是 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUMS_COUNT 1000 // 数字的个数
// 合并排序
void merge(int arr[], int l, int m, int r) {
int i, j, k;
int n1 = m - l + 1;
int n2 = r - m;
int L[n1], R[n2];
for (i = 0; i < n1; i++)
L[i] = arr[l + i];
for (j = 0; j < n2; j++)
R[j] = arr[m + 1 + j];
i = 0;
j = 0;
k = l;
while (i < n1 && j < n2) {
if (L[i] <= R[j]) {
arr[k] = L[i];
i++;
}
else {
arr[k] = R[j];
j++;
}
k++;
}
while (i < n1) {
arr[k] = L[i];
i++;
k++;
}
while (j < n2) {
arr[k] = R[j];
j++;
k++;
}
}
void mergeSort(int arr[], int l, int r) {
if (l < r) {
int m = l + (r - l) / 2;
mergeSort(arr, l, m);
mergeSort(arr, m + 1, r);
merge(arr, l, m, r);
}
}
// 快速排序
int cmpfunc(const void* a, const void* b) {
return (*(int*)a - *(int*)b);
}
int main() {
int rand_nums[NUMS_COUNT];
FILE* fp;
// 生成随机数并写入文件
fp = fopen("file.txt", "w");
srand(time(NULL));
for (int i = 0; i < NUMS_COUNT; i++) {
rand_nums[i] = rand() % 1000;
fprintf(fp, "%d\n", rand_nums[i]);
}
fclose(fp);
// 读取随机数并进行合并排序
fp = fopen("file.txt", "r");
int merge_sort_nums[NUMS_COUNT];
for (int i = 0; i < NUMS_COUNT; i++) {
fscanf(fp, "%d", &merge_sort_nums[i]);
}
fclose(fp);
clock_t t;
t = clock();
mergeSort(merge_sort_nums, 0, NUMS_COUNT - 1);
t = clock() - t;
fp = fopen("merge_sort.txt", "w");
for (int i = 0; i < NUMS_COUNT; i++) {
fprintf(fp, "%d\n", merge_sort_nums[i]);
}
fclose(fp);
printf("Merge sort time: %f seconds\n", ((float)t) / CLOCKS_PER_SEC);
// 读取随机数并进行快速排序
fp = fopen("file.txt", "r");
int quick_sort_nums[NUMS_COUNT];
for (int i = 0; i < NUMS_COUNT; i++) {
fscanf(fp, "%d", &quick_sort_nums[i]);
}
fclose(fp);
t = clock();
qsort(quick_sort_nums, NUMS_COUNT, sizeof(int), cmpfunc);
t = clock() - t;
fp = fopen("quick_sort.txt", "w");
for (int i = 0; i < NUMS_COUNT; i++) {
fprintf(fp, "%d\n", quick_sort_nums[i]);
}
fclose(fp);
printf("Quick sort time: %f seconds\n", ((float)t) / CLOCKS_PER_SEC);
return 0;
}
```
在这个 C 语言实现中,我们使用了两种排序算法:合并排序和快速排序。我们首先生成了1000个随机整数,并将它们写入文件中。然后,我们读取文件中的随机数,并使用两种排序算法对它们进行排序。
在代码中,我们使用了 clock 函数来计算两种排序算法的运行时间。我们还定义了一个 cmpfunc 函数来作为 qsort 函数中的比较函数。
最后,我们将排序后的结果写入文件中,同样每个整数一行。请注意,在代码中,我们使用了 fprintf 函数向文件中写入整数,使用 \n 作为每个整数的分隔符。
阅读全文