Merge branch 'master' into master

This commit is contained in:
Yudong Jin
2023-01-05 01:11:34 +08:00
committed by GitHub
186 changed files with 9482 additions and 1006 deletions

View File

@@ -0,0 +1,72 @@
/**
* File: bubble_sort.c
* Created Time: 2022-12-26
* Author: Listening (https://github.com/L-Super)
*/
#include "../include/include.h"
/* 冒泡排序 */
void bubble_sort(int nums[], int size)
{
// 外循环:待排序元素数量为 n-1, n-2, ..., 1
for (int i = 0; i < size - 1; i++)
{
// 内循环:冒泡操作
for (int j = 0; j < size - 1 - i; j++)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
}
}
}
}
/* 冒泡排序(标志优化)*/
void bubble_sort_with_flag(int nums[], int size)
{
// 外循环:待排序元素数量为 n-1, n-2, ..., 1
for (int i = 0; i < size - 1; i++)
{
bool flag = false;
// 内循环:冒泡操作
for (int j = 0; j < size - 1 - i; j++)
{
if (nums[j] > nums[j + 1])
{
int temp = nums[j];
nums[j] = nums[j + 1];
nums[j + 1] = temp;
flag = true;
}
}
if (!flag)
break;
}
}
/* Driver Code */
int main()
{
int nums[6] = {4, 1, 3, 1, 5, 2};
printf("冒泡排序后:\n");
bubble_sort(nums, 6);
for (int i = 0; i < 6; i++)
{
printf("%d ", nums[i]);
}
printf("优化版冒泡排序后:\n");
bubble_sort_with_flag(nums, 6);
for (int i = 0; i < 6; i++)
{
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}

View File

@@ -0,0 +1,41 @@
/*
* File: insertion_sort.c
* Created Time: 2022-12-29
* Author: Listening (https://github.com/L-Super)
*/
#include "../include/include.h"
/* 插入排序 */
void insertionSort(int nums[], int size)
{
// 外循环base = nums[1], nums[2], ..., nums[n-1]
for (int i = 1; i < size; i++)
{
int base = nums[i], j = i - 1;
// 内循环:将 base 插入到左边的正确位置
while (j >= 0 && nums[j] > base)
{
// 1. 将 nums[j] 向右移动一位
nums[j + 1] = nums[j];
j--;
}
// 2. 将 base 赋值到正确位置
nums[j + 1] = base;
}
}
/* Driver Code */
int main()
{
int nums[] = {4, 1, 3, 1, 5, 2};
insertionSort(nums, 6);
printf("插入排序完成后 nums = \n");
for (int i = 0; i < 6; i++)
{
printf("%d ", nums[i]);
}
printf("\n");
return 0;
}

View File

@@ -7,5 +7,6 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "PrintUtil.h"
#include "PrintUtil.h"