/* 一百万的随机数排序,费时1秒 ! */
/* c */
#include "stdio.h"
#include "time.h"
int shu[1000000];
int i,j,k,len;
void quick_sort(int left,int right);
void swap(int left,int right);
void read_file();
void main()
{
clock_t start, finish;
double duration;
read_file();
printf ("%d\n",len);
start = clock();
quick_sort(0,len-1);
finish = clock();
duration = (double)(finish - start) / CLOCKS_PER_SEC;
printf ("%.6f\n",duration);
for (i=0;i<len-1;i++)
if (shu[i]>shu[i+1])
printf("%d %d\n",shu[i],shu[i+1]);
}
void read_file()
{
FILE * fp;
char c;
fp = fopen("e:/test/sort/100w.txt","r");
len=0;
k=0;
c = fgetc(fp);
while (c!=EOF)
{
if (c == 32)
{
shu[len]=k;
k=0;
len++;
}
else
k = k*10+c-48;
c = fgetc(fp);
}
fclose(fp);
}
void quick_sort(int left,int right)
{
int m;
if (left>=right)
return;
m = left;
for (i=left+1;i<=right;i++)
if (shu[i]<shu[left])
swap(++m,i);
swap(left,m);
quick_sort(left,m-1);
quick_sort(m+1,right);
}
void swap(int left,int right)
{
int temp;
temp = shu[left];
shu[left] = shu[right];
shu[right] = temp;
}
分享到:
相关推荐
5. **快速排序**:快速排序是一种分治算法,由计算机科学家C.A.R. Hoare提出。它选择一个基准值,然后将数组分为两部分,一部分的元素都比基准小,另一部分的元素都比基准大。然后递归地对这两部分进行快速排序。...
在本文中,我们将深入探讨如何在Microsoft Visual C++(简称VC)环境中利用多线程技术对包含随机数的文件进行快速排序。这个话题涉及到计算机科学中的几个关键领域:多线程编程、随机数生成以及快速排序算法。我们将...
"C语言排序题 明明的随机数" 本资源提供了两道关于C语言排序的题目,分别是明明的随机数问题和统计数字问题。这些题目都是关于排序和去重的数据处理问题。 明明的随机数问题 明明想在学校中请一些同学一起做一项...
3. **终止条件**:当进行过一轮没有交换时,说明已经排序完成。 ### 4. 完整代码示例 下面是一个完整的C#程序示例,演示了如何使用随机数生成器生成随机数,并使用冒泡排序算法对数组进行排序: ```csharp using ...
在编程领域,随机数的生成、反转和排序是常见的操作,尤其在数据分析、模拟运算以及游戏开发等场景中。在C#编程语言中,我们可以利用内置的类库轻松实现这些功能。下面将详细讲解如何使用C#来实现随机数生成、数组...
通过上述代码的分析,我们可以看到如何在C#中实现快速排序算法以及如何生成一组无重复的随机数。快速排序作为一种高效的排序算法,在实际应用中非常广泛。通过对代码的理解和实践,开发者可以更好地掌握这种算法的...
自动生成随机数,然后分别用冒泡、选择、快速排序来输出排序结果。代码中还可以输出每一步的排序结果供分析
本文将深入探讨如何使用C++生成随机数,以及如何应用四种不同的排序算法——冒泡排序、快速排序、归并排序和希尔排序,并分析它们的执行时间。 首先,让我们关注如何在C++中生成随机数。C++标准库提供了`<random>`...
描述中提到的“可选择排序方式”,这可能是指用户可以选择不同的排序算法,比如快速排序、冒泡排序、插入排序、归并排序等。 “mfc随机排序”则涉及到在排序过程中使用随机数生成器。随机排序通常不是指一个特定的...
数组排序 1、冒泡排序 2、选择排序 3、插入排序 4、生成不同的随机数并排序
当数组中的最大值“冒”到顶端,每次外层循环都会减少一次内层循环的次数,直到整个数组排序完成。 结合上述描述,我们可以创建一个简单的VB.NET程序,该程序具有一个用户界面,允许用户输入要生成的随机数个数和...
随机数,HsahSet,排序,输出.随机数,HsahSet,排序,输出.
冒泡排序和生成随机数是计算机编程中两个基础但重要的概念,特别是在C语言的学习过程中。本文将详细解析这两个主题,并提供相关...同时,这两个概念也是许多更复杂数据结构和算法的基础,比如快速排序、随机化算法等。
冒泡排序,快速排序,直接插入排序,希尔排序,简单选择排序,堆排序,随机数的产生及交换次数、比较次数。
随机数随机数随机数随机数随机数随机数随机数随机数
在这个“一个简单的产生随机数并冒泡排序的算法”程序中,开发者可能将随机数生成与冒泡排序结合起来,生成一系列随机数,然后使用冒泡排序对这些随机数进行排序。11.c.exe可能是编译后的可执行文件,而11.c.sln则是...
用c语言实现的一个快速排序。数组用随机数生成,方便大家学习。
在编程领域,随机数生成和排序是两个非常基础且重要的概念。随机数广泛应用于各种场景,如模拟实验、加密算法、游戏...在实际项目中,根据数据规模和需求,可以选择更高效的排序算法,如快速排序、归并排序或堆排序等。
国密随机数检测工具,随机数检测
在本文中,我们将深入探讨如何使用C++编程语言创建一个随机数生成器。这个生成器允许用户指定随机数的范围和需要生成的个数。在C++中,生成随机数是一项基本任务,常用于各种应用,如模拟、游戏、测试等。 首先,...