Advertisement
eddiehy

sorting_class

Nov 28th, 2015
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void bubble(int* data)
  4. {
  5. int i,j,temp;
  6. for (j=6;j>1;j--)
  7. {
  8. for (i=0;i<j-1;i++) //i<5才會執行, 所以不會爆
  9. {
  10. if (data[i+1]<data[i]) //遞增就是把最大值換到最後面
  11. {
  12. temp=data[i];
  13. data[i]=data[i+1];
  14. data[i+1]=temp;
  15. }
  16. }
  17. for (i=0;i<6;i++)
  18. {
  19. printf("%d ",data[i]);
  20. }
  21. printf("\n");
  22. }
  23. for (i=0;i<6;i++)
  24. {
  25. printf("%d ",data[i]);
  26. }
  27. printf("\n");
  28. }
  29. void select(int* data)
  30. {
  31. int i,j,temp,min;
  32. for (j=0;j<6;j++) //最小值放最前面
  33. {
  34. min=j;
  35. for (i=j+1;i<6;i++) //i<5才會執行, 所以不會爆
  36. {
  37. if (data[min]>data[i]) //找出最小值
  38. {min=i;}
  39. }
  40. if (min!=j)
  41. {
  42. temp=data[j];
  43. data[j]=data[min];
  44. data[min]=temp;
  45. }
  46. for (i=0;i<6;i++)
  47. {
  48. printf("%d ",data[i]);
  49. }
  50. printf("\n");
  51. }
  52. }
  53. void insert(int* data)
  54. {
  55. int i,j,temp,max;
  56. for (i=1;i<6;i++) //遞增
  57. {
  58. max=data[i];
  59. for (j=i-1;j>=0 && data[j]>max;j--) //往後換的概念,泡泡跟選擇都往前換
  60. {
  61. data[j+1]=data[j];
  62. }
  63. data[j+1]=max;
  64. for (j=0;j<6;j++)
  65. {
  66. printf("%d ",data[j]);
  67. }
  68. printf("\n");
  69. }
  70. }
  71.  
  72. int main()
  73. {
  74. int data[6];
  75. int i;
  76. int action;
  77. for (i=0;i<6;i++)
  78. {
  79. scanf("%d",&data[i]);
  80. }
  81. scanf("%d",&action);
  82. if (action==1)
  83. {bubble(data);}
  84. else if (action==2)
  85. {select(data);}
  86. else if (action==3)
  87. {insert(data);}
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement