Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. typedef struct ElemType {
  2. char data[16];
  3. int key;
  4. } ElemType;
  5.  
  6. #include <stdbool.h>
  7.  
  8. void BubbleSortBothWay(ElemType A[], int n) {
  9. int i, j;
  10. ElemType swap;
  11. bool flag;
  12. for (i = 0; i < n - 1; i++) {
  13. flag = true;
  14. if (i % 2 == 0) {
  15. for (j = i + 1; j < n; j++) {
  16. if (A[j - 1].key > A[j].key) {
  17. flag = false;
  18. swap = A[j];
  19. A[j] = A[j - 1];
  20. A[j - 1] = swap;
  21. }
  22. }
  23.  
  24. } else {
  25. for (j = n - 1; j > i; j--) {
  26. if (A[j - 1].key > A[j].key) {
  27. flag = false;
  28. swap = A[j];
  29. A[j] = A[j - 1];
  30. A[j - 1] = swap;
  31. }
  32. }
  33. }
  34. if (flag) { return; }
  35. }
  36. }
  37.  
  38. void BubbleSortDual(ElemType A[], int n) {
  39. int low = 0, high = n - 1, i;
  40. ElemType swap;
  41. bool flag = true;
  42. while (low < high && flag) {
  43. flag = false;
  44. for (i = low; i < high; i++) {
  45. if (A[i].key > A[i + 1].key) {
  46. swap = A[i];
  47. A[i] = A[i + 1];
  48. A[i + 1] = swap;
  49. flag = true;
  50. }
  51. }
  52. high--;
  53. for (i = high; i > low; i--) {
  54. if (A[i].key < A[i - 1].key) {
  55. swap = A[i];
  56. A[i] = A[i - 1];
  57. A[i - 1] = swap;
  58. flag = true;
  59. }
  60. }
  61. low++;
  62. }
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement