📖 关于本站
正在加载...
Loading...
📖 关于这个网页的故事
▼
这个网页是我从零开始,跟着教程一步一步做出来的。虽然还有很多不足,但这是我前端之路的起点,我会继续改进它。
把鼠标放在这张卡片上,它会跟着你的鼠标轻轻倾斜,像一块小玻璃。
· 点击页面任意位置 → 烟花特效
· 鼠标移动 → 跟随光晕 + 小星星
· 按住 Shift → 放大镜
· 页面滚动 → 顶部进度条 + 右侧圆点导航
· 点击标题 → 撒花庆祝
· 右下角 🎨 → 切换背景主题色
| 复杂度 | 名称 | 典型算法 |
|---|---|---|
| O(1) | 常数阶 | 数组随机访问 |
| O(log n) | 对数阶 | 二分查找 |
| O(n) | 线性阶 | 遍历数组 |
| O(n log n) | 线性对数阶 | 归并/快速排序 |
| O(n²) | 平方阶 | 冒泡/选择/插入排序 |
| O(2ⁿ) | 指数阶 | 递归斐波那契 |
| O(n!) | 阶乘阶 | 全排列 |
void bubbleSort(int a[], int n) {
for (int i = 0; i < n - 1; i++)
for (int j = 0; j < n - i - 1; j++)
if (a[j] > a[j + 1]) {
int t = a[j]; a[j] = a[j + 1]; a[j + 1] = t;
}
}void selectionSort(int a[], int n) {
for (int i = 0; i < n - 1; i++) {
int minIdx = i;
for (int j = i + 1; j < n; j++)
if (a[j] < a[minIdx]) minIdx = j;
if (minIdx != i) {
int t = a[i]; a[i] = a[minIdx]; a[minIdx] = t;
}
}
}void insertionSort(int a[], int n) {
for (int i = 1; i < n; i++) {
int key = a[i], j = i - 1;
while (j >= 0 && a[j] > key) { a[j + 1] = a[j]; j--; }
a[j + 1] = key;
}
}int partition(int a[], int low, int high) {
int pivot = a[high], i = low - 1;
for (int j = low; j < high; j++)
if (a[j] < pivot) { i++; int t=a[i]; a[i]=a[j]; a[j]=t; }
int t = a[i + 1]; a[i + 1] = a[high]; a[high] = t;
return i + 1;
}
void quickSort(int a[], int low, int high) {
if (low < high) {
int pi = partition(a, low, high);
quickSort(a, low, pi - 1);
quickSort(a, pi + 1, high);
}
}int binarySearch(int a[], int n, int target) {
int left = 0, right = n - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (a[mid] == target) return mid;
else if (a[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}printf("%d\n", 10); // 整数
printf("%f\n", 3.14); // 浮点数
printf("%c\n", 'A'); // 字符
printf("%s\n", "hello"); // 字符串
printf("%p\n", &x); // 指针地址
printf("%x\n", 255); // 十六进制char 1 字节 -128 ~ 127 short 2 字节 int 4 字节 long 8 字节 float 4 字节 double 8 字节 unsigned 无符号(只有非负数)
int a[5] = {1, 2, 3, 4, 5};
char s[] = "hello"; // 自动加 '\0'
char s2[20];
strcpy(s2, s); // 复制字符串
strlen(s); // 字符串长度int x = 10;
int *p = &x; // p 指向 x
*p = 20; // 通过指针改 x 的值
printf("%d", x); // 输出 20for (int i = 0; i < 10; i++) { }
while (条件) { }
do { } while (条件);
if (条件) { }
else if (条件) { }
else { }
switch (x) {
case 1: break;
default: break;
}int add(int a, int b) {
return a + b;
}
// 调用
int result = add(3, 5);这个网页是我从零开始,跟着教程一步一步做出来的。虽然还有很多不足,但这是我前端之路的起点,我会继续改进它。
这是feng亲手做的第一个网页,谢谢你来看它。