大家好,小评来为大家解答以上问题。快速排序算法c语言流程图,快速排序算法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('%5d', 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=start; /*将每组首个元素赋给i*/
54、 j=end; /*将每组末尾元素赋给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、 i++; /*位置右移*/
64、 }
65、 while (i j s[i]=s[0])
66、 i++; /*位置右移*/
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、}
本文到此结束,希望对大家有所帮助。