Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <algorithm>
- #include <stdarg.h>
- #include <stdio.h>
- #include <stdlib.h>
- int *gen(int n, int m) {
- int *ar = (int *)malloc(n * sizeof(int));
- for (int i = 0; i < n; i++) {
- ar[i] = rand() % m;
- }
- return ar;
- }
- void isSorted(int *ar, int n) {
- for (int i = 0; i < n - 1; i++) {
- if (ar[i] > ar[i + 1]) {
- printf("not sorted\n");
- return;
- }
- }
- printf("sorted\n");
- }
- void print(int *ar, int n) {
- for (int i = 0; i < n; i++) {
- printf("%d ", ar[i]);
- }
- printf("\n");
- }
- void radixSort(unsigned *ar, int size, unsigned byte) {
- if (size < 2)
- return;
- if (byte == 0)
- return;
- int l = 0;
- for (int i = 0; i < size; i++) {
- if ((ar[i] & byte) == 0) {
- std::swap(ar[i], ar[l++]);
- }
- }
- radixSort(ar, l, byte >> 1);
- radixSort(ar + l, size - l, byte >> 1);
- }
- void cntSort(int *ar, int n, int max) {
- int *temp = (int *)malloc(max * sizeof(int));
- for (int i = 0; i < max; i++) {
- temp[i] = 0;
- }
- for (int i = 0; i < n; i++) {
- temp[ar[i]]++;
- }
- int k = 0;
- for (int i = 0; i < max; i++) {
- for (int j = 0; j < temp[i]; j++) {
- ar[k++] = i;
- }
- }
- free(temp);
- }
- int sum(int cnt, ...) {
- va_list args;
- va_start(args, cnt);
- int s = 0;
- for (int i = 0; i < cnt; i++) {
- s += va_arg(args, int);
- }
- va_end(args);
- return s;
- }
- void print(const char *str, ...) {
- va_list args;
- va_start(args, str);
- for (int i = 0; str[i]; i++) {
- switch (str[i]) {
- case 'd':
- printf("%d", va_arg(args, int));
- break;
- case 'f':
- printf("%lf", va_arg(args, double));
- break;
- case 's':
- printf("%s", va_arg(args, char *));
- break;
- case 'c':
- printf("%c", va_arg(args, int));
- break;
- }
- printf("\n");
- }
- va_end(args);
- }
- int main() {
- /*
- int n = 20, m = 100;
- int *ar = gen(n, m);
- print(ar, n);
- cntSort(ar, n, 100);
- // radixSort((unsigned *)ar, n, 128);
- isSorted(ar, n);
- print(ar, n);
- free(ar);
- */
- // printf("%d\n", sum(3, 1, 2, 3));
- // printf("%d\n", sum(5, 1, 2, 3, 4, 5));
- print("dfsc", 10, 3.14, "hello", '!');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement