n个数比较大小 用c语言,c语言中n个数比大小,然后在从大或者从小输出该怎么写?...

匿名用户

1级

2017-02-25 回答

01.#include

02.#include

03.

04./*

05.* 冒泡法排序。从小到大排序。

06.*

07.*/

08.void Bubble(int str[],int n)

09.{

10. int i;

11. int j;

12. int temp;

13. for(i=0;i

14. {

15. for(j=i+1;j

16. {

17. if(str[i]>str[j])

18. {

19. temp=str[i];

20. str[i]=str[j];

21. str[j]=temp;

22. }

23. }

24. }

25.}

26./*

27.*选择法。类似于冒泡。

28.*区别是标记记号K,比较元素由a[i],a[j]变为a[k],a[j].

29.*/

30.void Choose(int str[],int n)

31.{

32. int i;

33. int j;

34. int k;

35. int temp;

36. for(i=0;i

37. {

38. k=i;//标记

39. for(j=i+1;j

40. {

41. if(str[k]>str[j])

42. k=j;//k总是指向最小元素

43. if(i!=k)

44. {

45. temp=str[i];

46. str[i]=str[k];

47. str[k]=temp;

48. }

49. }

50. }

51.}

52.

53./*

54.*插入法;

55.*比较直观,首先将数组前两个元素排好序,再依次插入后面合适的元素。

56.*/

57.void Insert(int str[],int n)

58.{

59. int i;

60. int j;

61. int temp;

62. for(i=1;i

63. {

64. temp=str[i];

65. j=i-1;

66. while(j>=0&&temp

67. {

68. str[j+1]=str[j];

69. j--;

70. }

71. str[j+1]=temp;

72. }

73.}

74.

75./*

76.*快排法;

77.*通过一次排序将数组分为独立的两部分,其中一部分的所用数据比另一部分都要小。

78.*然后再对两部分独立排序,递归进行。

79.*/

80.void Quick(int str[],int i,int j)

81.{

82. int m,n,temp;

83. int k;

84. m=i;

85. n=j;

86. k=str[(m+n)/2];

87. do

88. {

89. while(str[m]

90. m++;

91. while(str[n]>k&&n>i)

92. n--;

93. if(m<=n)

94. {

95. temp=str[m];

96. str[m]=str[n];

97. str[n]=temp;

98. m++;

99. n--;

100. }

101. }while(m<=n);

102. if(m

103. Quick(str,m,j);

104. if(n>i)

105. Quick(str,i,n);

106.}

107./*

108.*shell排序;一种插入排序法。

109.*

110.*/

111.void Shell(int str[],int n)

112.{

113. int i;

114. int j;

115. int k;

116. int temp;

117.

118. k=n/2;

119. while(k>=1)

120. {

121. for(i=k;i

122. {

123. temp=str[i];

124. j=i-k;

125. while(j>=0&&temp

126. {

127. str[j+k]=str[j];

128. j=j-k;

129. }

130. str[j+k]=temp;

131. }

132. k=k/2;

133. }

134.}

135.

136.int main(int argc,char *argv[])

137.{

138. int str1[]={1,4,2,3,5,7,9,0,8,6};

139. int str2[]={1,4,2,3,5,7,9,0,8,6};

140. int str3[]={1,4,2,3,5,7,9,0,8,6};

141. int str4[]={1,4,2,3,5,7,9,0,8,6};

142. int str5[]={1,4,2,3,5,7,9,0,8,6};

143. int i;

144.

145. Bubble(str1,10);

146. printf("Bubble sort:\n");

147. for(i=0;i<10;i++)

148. {

149. printf("%d ",str1[i]);

150. }

151. printf("\n");

152.

153. Choose(str2,10);

154. printf("Choose sort:\n");

155. for(i=0;i<10;i++)

156. {

157. printf("%d ",str2[i]);

158. }

159. printf("\n");

160.

161. Insert(str3,10);

162. printf("Insert sort:\n");

163. for(i=0;i<10;i++)

164. {

165. printf("%d ",str3[i]);

166. }

167. printf("\n");

168.

169. Quick(str4,0,9);

170. printf("Quick sort:\n");

171. for(i=0;i<10;i++)

172. {

173. printf("%d ",str4[i]);

174. }

175. printf("\n");

176.

177. Shell(str5,10);

178. printf("Shell sort:\n");

179. for(i=0;i<10;i++)

180. {

181. printf("%d ",str5[i]);

182. }

183.

184.}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值