快速排序算法c语言流程图(快速排序算法c语言)

2023-04-09 23:47:45 生活知识 0阅读 回答者:admin

大家好,小评来为大家解答以上问题。快速排序算法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、}

本文到此结束,希望对大家有所帮助。

免责声明:本文来源网友投稿及网络整合仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。投诉邮箱:1765130767@qq.com。

本文地址:https://www.lnsss.com/shenghuo/zhishi/394636.html