`
ipython
  • 浏览: 294586 次
  • 性别: Icon_minigender_1
  • 来自: 佛山
社区版块
存档分类
最新评论

快速排序,一百万随机数,一秒完成

阅读更多

/* 一百万的随机数排序,费时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;
}
 
1
0
分享到:
评论

相关推荐

    随机数排序_20个随机数_数组排序_源码

    5. **快速排序**:快速排序是一种分治算法,由计算机科学家C.A.R. Hoare提出。它选择一个基准值,然后将数组分为两部分,一部分的元素都比基准小,另一部分的元素都比基准大。然后递归地对这两部分进行快速排序。...

    利用VC多线程对随机数文件进行快速排序

    在本文中,我们将深入探讨如何在Microsoft Visual C++(简称VC)环境中利用多线程技术对包含随机数的文件进行快速排序。这个话题涉及到计算机科学中的几个关键领域:多线程编程、随机数生成以及快速排序算法。我们将...

    C语言排序题 明明的随机数

    "C语言排序题 明明的随机数" 本资源提供了两道关于C语言排序的题目,分别是明明的随机数问题和统计数字问题。这些题目都是关于排序和去重的数据处理问题。 明明的随机数问题 明明想在学校中请一些同学一起做一项...

    c#产生随机数并冒泡排序

    3. **终止条件**:当进行过一轮没有交换时,说明已经排序完成。 ### 4. 完整代码示例 下面是一个完整的C#程序示例,演示了如何使用随机数生成器生成随机数,并使用冒泡排序算法对数组进行排序: ```csharp using ...

    随机数的产生 反转 排序 C#

    在编程领域,随机数的生成、反转和排序是常见的操作,尤其在数据分析、模拟运算以及游戏开发等场景中。在C#编程语言中,我们可以利用内置的类库轻松实现这些功能。下面将详细讲解如何使用C#来实现随机数生成、数组...

    快速排序算法实现 c#代码

    通过上述代码的分析,我们可以看到如何在C#中实现快速排序算法以及如何生成一组无重复的随机数。快速排序作为一种高效的排序算法,在实际应用中非常广泛。通过对代码的理解和实践,开发者可以更好地掌握这种算法的...

    生成随机数并排序.cbp

    自动生成随机数,然后分别用冒泡、选择、快速排序来输出排序结果。代码中还可以输出每一步的排序结果供分析

    C++ 随机数 冒泡、快速、归并、希尔排序 排序时间

    本文将深入探讨如何使用C++生成随机数,以及如何应用四种不同的排序算法——冒泡排序、快速排序、归并排序和希尔排序,并分析它们的执行时间。 首先,让我们关注如何在C++中生成随机数。C++标准库提供了`&lt;random&gt;`...

    mfc.rar_mfc 排序_mfc随机排序_随机数

    描述中提到的“可选择排序方式”,这可能是指用户可以选择不同的排序算法,比如快速排序、冒泡排序、插入排序、归并排序等。 “mfc随机排序”则涉及到在排序过程中使用随机数生成器。随机排序通常不是指一个特定的...

    数组排序 1、冒泡排序 2、选择排序 3、插入排序 4、不同的随机数

    数组排序 1、冒泡排序 2、选择排序 3、插入排序 4、生成不同的随机数并排序

    vb.net随机数生成+冒泡排序

    当数组中的最大值“冒”到顶端,每次外层循环都会减少一次内层循环的次数,直到整个数组排序完成。 结合上述描述,我们可以创建一个简单的VB.NET程序,该程序具有一个用户界面,允许用户输入要生成的随机数个数和...

    随机数用hashSet排序

    随机数,HsahSet,排序,输出.随机数,HsahSet,排序,输出.

    冒泡排序和生成随机数

    冒泡排序和生成随机数是计算机编程中两个基础但重要的概念,特别是在C语言的学习过程中。本文将详细解析这两个主题,并提供相关...同时,这两个概念也是许多更复杂数据结构和算法的基础,比如快速排序、随机化算法等。

    随机数的产生及冒泡,简单选择,堆等排序

    冒泡排序,快速排序,直接插入排序,希尔排序,简单选择排序,堆排序,随机数的产生及交换次数、比较次数。

    随机数随机数随机数随机数

    随机数随机数随机数随机数随机数随机数随机数随机数

    一个简单的产生随机数并冒泡排序的算法

    在这个“一个简单的产生随机数并冒泡排序的算法”程序中,开发者可能将随机数生成与冒泡排序结合起来,生成一系列随机数,然后使用冒泡排序对这些随机数进行排序。11.c.exe可能是编译后的可执行文件,而11.c.sln则是...

    c语言快速排序

    用c语言实现的一个快速排序。数组用随机数生成,方便大家学习。

    随机数生成和读取,以及排序比较

    在编程领域,随机数生成和排序是两个非常基础且重要的概念。随机数广泛应用于各种场景,如模拟实验、加密算法、游戏...在实际项目中,根据数据规模和需求,可以选择更高效的排序算法,如快速排序、归并排序或堆排序等。

    国密随机数检测工具,随机数检测

    国密随机数检测工具,随机数检测

    用C++写的随机数生成器(含源代码)

    在本文中,我们将深入探讨如何使用C++编程语言创建一个随机数生成器。这个生成器允许用户指定随机数的范围和需要生成的个数。在C++中,生成随机数是一项基本任务,常用于各种应用,如模拟、游戏、测试等。 首先,...

Global site tag (gtag.js) - Google Analytics