1. Список говнокодов пользователя Max ID

    Всего: 3

  2. C++ / Говнокод #3290

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    char Sort(char Type, int l, int r)
    {
      int i = l, j = r;
      char x[31];
      void *y = 0;
      setmem(x, 31, 0);
      strcpy(x, ((TData*)(DataLists[CurrentList][(l+r)/2]))->Data[CurrentCol-1]);
      do
      {
        if (Type==UP)
        {
          switch(CurrentCol)
          {
    	case 1: case 2:
    	  while (strcmp(((TData*)(DataLists[CurrentList][i]))->Data[CurrentCol-1], x) < 0)
    	    ++i;
    	  while (strcmp(((TData*)(DataLists[CurrentList][j]))->Data[CurrentCol-1], x) > 0)
    	    --j;
    	  break;
    	default:
    	  while (atoi(((TData*)(DataLists[CurrentList][i]))->Data[CurrentCol-1])<atoi(x))
    	  ++i;
    	  while (atoi(((TData*)(DataLists[CurrentList][j]))->Data[CurrentCol-1])>atoi(x))
    	  --j;
          }
        }
        else
        {
          switch(CurrentCol)
          {
    	case 1: case 2:
    	  while (strcmp(((TData*)(DataLists[CurrentList][i]))->Data[CurrentCol-1], x) > 0)
    	    ++i;
    	  while (strcmp(((TData*)(DataLists[CurrentList][j]))->Data[CurrentCol-1], x) < 0)
    	    --j;
    	  break;
    	default:
    	  while (atoi(((TData*)(DataLists[CurrentList][i]))->Data[CurrentCol-1])>atoi(x))
    	    ++i;
    	  while (atoi(((TData*)(DataLists[CurrentList][j]))->Data[CurrentCol-1])<atoi(x))
    	    --j;
          }//switch
        }//if
        if (i<=j)
        {
          y = DataLists[CurrentList][i];
          *(DataLists[CurrentList].GetPointerToData(i)) = DataLists[CurrentList][j];
          *(DataLists[CurrentList].GetPointerToData(j)) = y;
          ++i, --j;
        }
      }
      while (i<=j);
        if (l<j)
        {
          if (Type==UP)
    	Sort(UP, l, j);
          else
    	Sort(DOWN, l, j);
        }
      if (i<r)
      {
        if (Type==UP)
          Sort(UP, i, r);
        else
          Sort(DOWN, i, r);
      }
    return 1;
    }

    По-моему, это должна была быть сортировка Хоара, а получилось говно. Самое странное - это то, что оно работает...

    Max ID, 21 Мая 2010

    Комментарии (9)
  3. C++ / Говнокод #3289

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    void main(void)
    {
      int s, e, x, y, n, i, g, e, r, s;
      // действия с вышеобъявленными переменными
      return;
    }

    Max ID, 21 Мая 2010

    Комментарии (51)
  4. Java / Говнокод #3280

    +80

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    private String nextUTF8Character() throws IOException, CharacterCodingException
      {
        int iCodePoint = 0;
        int byte1, byte2, byte3, byte4;
        byte1 = is.read();
        if (byte1 == -1)
          return null;
        // проверяем является ли первый бит нулевым
        if ((byte1 & 0x80) == 0)
        {
          // один байт
          iCodePoint = byte1 & 0x7F;
          return new String(Character.toChars(iCodePoint));
        }
        byte2 = is.read();
        if (byte2 == -1)
          return null;
        if ((byte1 & 0xE0) == 0xC0 && (byte2 & 0xC0) == 0x80)
        {
          // два байта
          iCodePoint = ((byte1 & 0x1F) << 6) | (byte2 & 0x3F);
          if (iCodePoint > 0x7F)
            return new String(Character.toChars(iCodePoint));
          else
            throw new CharacterCodingException();
        }
        byte3 = is.read();
        if (byte3 == -1)
          return null;
        if ((byte1 & 0xF0) == 0xE0 && (byte2 & 0xC0) == 0x80 && (byte3 & 0xC0) == 0x80)
        {
          // три байта
          iCodePoint = ((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | (byte3 & 0x3F);
          if (iCodePoint > 0x7FF)
            return new String(Character.toChars(iCodePoint));
          else
            throw new CharacterCodingException();
        }
        byte4 = is.read();
        if (byte4 == -1)
          return null;
        if ((byte1 & 0xF8) == 0xF0 && (byte2 & 0xC0) == 0x80 &&
                (byte3 & 0xC0) == 0x80 && (byte4 & 0xC0) == 0x80)
        {
          // четыре байта
          iCodePoint = ((byte1 & 0x07) << 18) | ((byte2 & 0x3F) << 12) |
                  ((byte3 & 0x3F) << 6) | (byte4 & 0x3F);
          if (iCodePoint > 0x0FFFF)
            return new String(Character.toChars(iCodePoint));
          else
            throw new CharacterCodingException();
        }
        throw new CharacterCodingException();
      }

    Мегаоптимизированный код для получения букафф в кодироффке UTFфф-8
    По данным профилировщика именно этот фрагмент самый тормозной в моей сетевой проге

    Max ID, 20 Мая 2010

    Комментарии (36)