|
楼主 |
发表于 2006-7-6 17:34
|
显示全部楼层
谢谢!还有个问题!现在有个快速排序的程序!是已经定了所排数据的!程序如下:
- #include <stdio.h>
- #include <stddef.h>
- int main(void)
- {
- int keys[] = { 5, 8, 9, 15, -18, 150, 0, 55, -5, -108, 100 };
- int i;
- const int keys_size = (sizeof keys) / (sizeof *keys);
- /* prototype */
- void my_qsort(int v[], int left, int right);
-
- my_qsort( keys, 0, keys_size - 1 );
- for ( i = 0; i < keys_size; ++i ) {
- printf("%d ", keys[i]);
- }
-
- printf("\nPress ENTER to quit...");
- getchar();
- return 0;
- }
- /* my_qsort: sort v[left]...v[right] into increasing order */
- void my_qsort(int v[], int left, int right)
- {
- int i, last;
- /* prototype */
- void my_swap(int v[], int i, int j);
- if (left >= right) /* do nothing if array contains */
- return; /* fewer than two elements */
- my_swap(v, left, (left + right)/2); /* move partition elem */
- last = left; /* to v[0] */
- for (i = left + 1; i <= right; i++) /* partition */
- if (v[i] < v[left])
- my_swap(v, ++last, i);
- my_swap(v, left, last); /* restore partition elem */
- my_qsort(v, left, last-1);
- my_qsort(v, last+1, right);
- }
- /* my_swap: interchange v[i] and v[j] */
- void my_swap(int v[], int i, int j)
- {
- int temp;
- temp = v[i];
- v[i] = v[j];
- v[j] = temp;
- }
复制代码
我想把它改成对随机数进行排序!我查了一些资料!我用了下面的语句改
- int a[50];
- int i,j,k,temp,n;
- srand(time(0)); /* 设置种子 */
- for(i=0;i<50;i++)
- a[i]=rand();
复制代码
把rand()加到所要排的数据的地方!但是只有最后一个有数据!要怎么改才能使这个快速排序对随机数排呢!
如果我要用你教的方法输出程序运行的时间应该怎么做呢!
我还做了个冒泡排序!要求是计算各排序方法所用的时间。
我知道大家都很忙!可以的话就帮忙解决一下!今晚再奋斗一晚!明天就要交了!现在还在弄哈希表!头疼阿!
编辑了下格式
by powerwind
[ 本帖最后由 powerwind 于 2006-7-6 21:33 编辑 ] |
|