大家好,小评来为大家解答以上问题。快速排序算法的平均时间复杂度,快速排序算法c语言很多人还不知道,现在让我们一起来看看吧!
1、打开visual C 6.0-文件-新建-文件-C源文件。
2、定义变量:
3、#include stdio.h
4、void qusort(int s[],int start,int end) /*自定义函数qusort()*/
5、{
6、int i,j;/*将变量定义为基本整数*/
7、给变量赋一个初始值:
8、i=开始;/*将每个组的第一个元素分配给i*/
9、j=结束;/*将每个组的最后一个元素分配给j*/
10、s[0]=s[start];/*设置参考值*/
11、比较大小:
12、 while (i j)
13、 {
14、 while (i j s[0] s[j])
15、j-;/*位置向左移动*/
16、 if (i j)
17、 {
18、s[I]=s[j];/*将s[j]放在s[i]的位置*/
19、我;/*位置向右移动*/
20、 }
21、 while (i j s[i]=s[0])
22、我;/*位置向右移动*/
23、 if (i j)
24、 {
25、s[j]=s[I];/*将s[j]设置为大于s[i]位置的参考值*/
26、j-;/*位置向右移动*/
27、 }
28、 }
29、呼叫功能:
30、s[I]=s[0];/*将参考值放在指定位置*/
31、 if (start i)
32、qusort(s,start,j-1);/*递归调用函数qusort()*/
33、 if (i end)
34、 qusort(s, j + 1, end);
35、输入10个数字进行排序:
36、void main()
37、{
38、int a[11],I;/*将数组和变量定义为基本整数*/
39、Printf('请输入10个数字:\ n ');
40、 for (i=1; i=10; i++)
41、scanf('%d 'a[I]);/*从键盘输入10个数字进行排序*/
42、qusort(a,1,10);/*调用qusort()函数进行排序*/
43、输出有序数组:
44、Printf('排序顺序为:\ n ');
45、 for (i=1; i=10; i++)
46、printf(']'a[I]);/*输出有序数组*/
47、 printf('\n');
48、完整的源代码:
49、#include stdio.h
50、void qusort(int s[],int start,int end) /*自定义函数qusort()*/
51、{
52、int i,j;/*将变量定义为基本整数*/
53、i=开始;/*将每个组的第一个元素分配给i*/
54、j=结束;/*将每个组的最后一个元素分配给j*/
55、s[0]=s[start];/*设置参考值*/
56、 while (i j)
57、 {
58、 while (i j s[0] s[j])
59、j-;/*位置向左移动*/
60、 if (i j)
61、 {
62、s[I]=s[j];/*将s[j]放在s[i]的位置*/
63、我;/*位置向右移动*/
64、 }
65、 while (i j s[i]=s[0])
66、我;/*位置向右移动*/
67、 if (i j)
68、 {
69、s[j]=s[I];/*将s[j]设置为大于s[i]位置的参考值*/
70、j-;/*位置向右移动*/
71、 }
72、 }
73、s[I]=s[0];/*将参考值放在指定位置*/
74、 if (start i)
75、qusort(s,start,j-1);/*递归调用函数qusort()*/
76、 if (i end)
77、 qusort(s, j + 1, end);
78、}
79、void main()
80、{
81、 int a[11], i; /*定义数组及变量为基本整型*/
82、 printf('请输入10个数:\n');
83、 for (i=1; i=10; i++)
84、 scanf('%d', a[i]); /*从键盘中输入10个要进行排序的数*/
85、 qusort(a, 1, 10); /*调用qusort()函数进行排序*/
86、 printf('排序后的顺序是:\n');
87、 for (i=1; i=10; i++)
88、 printf('%5d', a[i]); /*输出排好序的数组*/
89、 printf('\n');
90、}
本文到此结束,希望对大家有所帮助。