Advertisement
SuperEPF

FINISHED SORT 1

Apr 4th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 100
  4.  
  5. // Ucitati niz brojeva i zadrzati za svaki element najnizih 7bita
  6. // Ispisati niz
  7.  
  8. int main() {
  9. int n, i, j ;
  10. unsigned char arr[MAX];
  11. // ucitavanje i cuvanje low 7bit
  12. printf("Uneti broj niza ");
  13. scanf("%d", &n);
  14. if (n <= 0 || n > MAX) return 1;
  15. for (i = 0; i < n; i++) {
  16. scanf("%u", &arr[i]);
  17. arr[i] &= 0x7F;
  18. }
  19.  
  20. //Ispis niza
  21. for (i = 0; i < n; i++) {
  22. printf("%d ", arr[i]);
  23. }
  24.  
  25. //Za svaki element biramo broj binarnih jedinica
  26. //Ukoliko je broj neparan, dodati bit parnosti u 8. bit, else dont do shit
  27.  
  28. //Racunanje bita parnosti
  29.  
  30. for (i = 0; i < n; i++) {
  31. int ones = 0, mask = 0x1;
  32. for (j = 0; j < 7; j++) {
  33. // if (arr[i] & mask) ones++;
  34. ones += arr[i] & mask ? 1 : 0;
  35. mask <<= 1;
  36. }
  37. //if (ones % 2) arr[i] += 128;
  38. arr[i] |= ones & 1 ? 0x80 : 0; //ili and sa 01111111 ili or sa 0
  39.  
  40. }
  41. //Ispis
  42. printf("Ucitani niz je:\n ");
  43. for (i = 0; i < n; i++) {
  44. printf("%d ", arr[i]);
  45. }
  46.  
  47. //Selection Sort TEST
  48.  
  49. /*for (int i = 0; i < n; i++) {
  50. int small = arr[i];
  51. int pos = i;
  52.  
  53. for (int j = i + 1; j < n; j++) {
  54. if ((arr[i] & 0x7F) > (arr[j] & 0x7F)) {
  55. small = arr[j];
  56. pos = j;
  57. }
  58. }
  59. }
  60. */
  61.  
  62.  
  63. //Selection sort *working*
  64. for (int i = 0; i < n - 1; i++) {
  65. for (j = i + 1; j < n; j++) {
  66. if ((arr[i] & 0x7F) > (arr[j] & 0x7F)){
  67. unsigned char t = arr[i];
  68. arr[i] = arr[j];
  69. arr[j] = t;
  70. }
  71. }
  72. }
  73.  
  74.  
  75. //Ispis
  76. printf("Ucitani sort niz je:\n ");
  77. for (i = 0; i < n; i++) {
  78. printf("%d ", arr[i]);
  79. }
  80.  
  81. system("pause");
  82.  
  83. return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement