vault backup: 2026-02-05 08:53:58

This commit is contained in:
2026-02-05 08:53:58 +08:00
parent b275fede1f
commit 6d9f343f7d
2 changed files with 120 additions and 12 deletions

107
YueQian/Homework/2-4.md Normal file
View File

@@ -0,0 +1,107 @@
---
tags:
- empty
aliases: empty
日期: 2026/2/4
---
```c
#include <stdio.h>
void bubble_sort(int *arr,int len)
{
    for(int i=0;i<len;i++){
        for(int j=0;j<len-i-1;j++){
            if(arr[j] > arr[j+1]){
                arr[j] ^= arr[j+1];
                arr[j+1] ^= arr[j];
                arr[j] ^= arr[j+1];
            }
        }
    }
}
void insertion_sort(int *arr,int len)
{
    int point=0,temp=0;
    for(int i=1;i<len;i++){
        if(arr[i+1] < arr[i]){
            point = i+1;
            for(int j=point;j>0;j--){
                if(arr[j-1] > arr[j]){
                    temp = arr[j-1];
                    arr[j-1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }
}
void selection_sort(int *arr, int len)
{
    int min_val,min_index,temp = 0;
    for (int i = 0; i < len - 1; i++){
        min_index = i;
        min_val = arr[i];
        for (int j = i + 1; j < len; j++){
            if (arr[j] < min_val){
                min_val = arr[j];
                min_index = j;
            }
        }
        temp = arr[i];
        arr[i] = min_val;
        arr[min_index] = temp;
    }
}
void quick_sort(int *arr, int left, int right)
{
    if (left > right)
        return;
    int tmp = arr[left];
    int i = left;
    int j = right;
    while (i != j){
        while (arr[j] >= tmp && j > i)
            j--;
        while (arr[i] <= tmp && j > i)
            i++;
        if (j > i){
            int t = arr[i];
            arr[i] = arr[j];
            arr[j] = t;
        }
    }
    arr[left] = arr[i];
    arr[i] = tmp;
    quick_sort(arr, left, i - 1);
    quick_sort(arr, i + 1, right);
}
void shell_sort(int *arr, int len)
{
}
int main(int argc, char const *argv[])
{
    int arr[20] = {3,44,28,5,47,36,27,26,89,58,11,31,14,51,54,67,76,68,89,45};
    int len = sizeof(arr)/sizeof(arr[0]);
    //quick_sort(arr,0,len-1);
    for(int i=0;i<len;i++)
        printf("%d ",arr[i]);
    printf("\n");
    return 0;
}
```