-
Notifications
You must be signed in to change notification settings - Fork 70
/
Copy pathvd7-3.c
46 lines (45 loc) · 1.04 KB
/
vd7-3.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*
(C) Nguyễn Bá Ngọc 2021
So sánh thời gian sắp xếp bằng giải thuật sắp xếp chèn
và giải thuật sắp xếp nhanh.
*/
#include "cgen.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void selsort(int *a, const int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = i + 1; j < n; ++j) {
if (a[i] > a[j]) {
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
int cmp_inc_i(const void *v1, const void *v2) {
return *((const int*)v1) - *((const int*)v2);
}
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: ./prog 100000\n");
return 1;
}
int n;
sscanf(argv[1], "%d", &n);
if (n < 0) {
printf("Số lượng phần tử = %d\n", n);
return 1;
}
srand(time(NULL));
int *a = malloc(n * sizeof(int)),
*b = malloc(n * sizeof(int));
for (int i = 0; i < n; ++i) {
a[i] = b[i] = rand();
}
BENCH("Sắp xếp chọn", 1, selsort(a, n));
BENCH("Sắp xếp nhanh", 1,
qsort(a, n, sizeof(a[0]), cmp_inc_i));
return 0;
}