Advertisement
Guest User

Untitled

a guest
Sep 29th, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main() {
  4. int i, j, str[15];
  5. for (i=0; i < sizeof str/sizeof(int); i++)
  6. scanf ("%d", str+i);
  7. for (i=0; i < sizeof str/sizeof(int)-1; i++)
  8. for (j=i; j < sizeof str/sizeof(int); j++)
  9. if (str[j]<str[i]) {
  10. int w;
  11. w = str[i];
  12. str[i] = str[j];
  13. str[j] = w;
  14. }
  15. for(i=0; i < sizeof str/sizeof(int); i++)
  16. printf(" %d", str[i]);
  17. return 0;
  18. }
  19.  
  20. #include <stdio.h>
  21. void sort1(unsigned int m, unsigned int *b, unsigned int *e) {
  22. unsigned int *b1, *e1, m1;
  23. b1 = b;
  24. e1 = e;
  25. while(b1 < e1) {
  26. if(*b1&m)
  27. if(*e1&m) e1--;
  28. else {
  29. unsigned int w;
  30. w = *b1;
  31. *b1 = *e1;
  32. *e1 = w;
  33. }
  34. else b1++;
  35. }
  36. m1 = m >> 1;
  37. if(m1) {
  38. if((*b&m) == (*e&m)) sort1(m1, b, e);
  39. else {
  40. if((*b&m) != (*b1&m)) --b1;
  41. if(b1 > b) sort1(m1, b, b1);
  42. if(e > b1 + 1) sort1(m1, b1+1, e);
  43. }
  44. }
  45. }
  46.  
  47. void sort(const unsigned int n, unsigned int str[]) {
  48. unsigned int i, m;
  49. for(i=1, m = str[0]; i < n; i++) m = str[i] > m ? str[i] : m;
  50. while(m) {
  51. i = m;
  52. m &= m - 1;
  53. }
  54. sort1(i, str, str+n-1);
  55. }
  56. int main() {
  57. unsigned int n, i, m, str[15];
  58. n = 0;
  59. while(n < sizeof str/sizeof(unsigned int) -1 && (i = scanf("%td", str+n++)) != EOF) {}
  60. if (i == EOF) --n;
  61. sort(n, str);
  62. for (i = 0; i < n; ) printf(" %td", str[i++]);
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement