排序....

news/2024/10/24 2:36:53/

1.直接插入排序

        1.1将数组分为有序和无序部分 无序部分插入到有序部分4

#include<iostream>
using namespace std;
void InsertSort(int a[], int n) {
    int tmp;
    int j;
    for (int i = 1; i < n; i++) {
        if (a[i] < a[i - 1]) {
            tmp = a[i];
            for ( j = i - 1; j >= 0 && tmp < a[j]; j--) {
                a[j + 1] = a[j];
            }
            a[j + 1] = tmp;
        }
    }
}
void Print_a(int a[], int n) {
    for (int i = 0; i < n; i++) {
        cout << a[i] << " ";
    }
}
int main() {
    int a[10] = { 1,9,2,8,3,7,4,6,5,10 };
    int n = sizeof(a) / sizeof(a[0]);
    InsertSort(a, n);
    Print_a(a, n);
    return 0;
}

希尔排序

#include<iostream>
using namespace std;
void ShellSort(int a[], int n) {
    int gap = n; 
    while (gap > 1) {
        gap = gap / 3 + 1;
        int i;
        for (int i = 0; i < n -gap; i++) {
            int end = i;
            int tmp = a[end + gap];
            while (end >= 0) {
                if (a[end] > tmp) {
                    a[end + gap] = a[end];
                    end -= gap;
                }
                else break;
            }
            a[end + gap] = tmp;
        }
    }
}
void print_a(int a[], int n) {
    for (int i = 0; i < n; i++) {
        cout << a[i] << " ";
    }
}
int main() {
    int a[] = { 1,9,2,8,3,7,4,6,5,10 };
    int n = sizeof(a) / sizeof(a[0]);
    ShellSort(a, n);
    print_a(a, n);
    return 0;
}

简单选择排序

#include<iostream>
using namespace std;
void SelectSort(int a[], int n) {
    for (int i = 0; i < n - 1; i++) {
        int Min = i;
        for (int j = i + 1; j < n; j++) {
            if (a[j] < a[Min]) {
                Min = j;
            }
        }
        if (Min != i) {
            swap(a[i], a[Min]);
        }
    }
}
void print_a(int a[], int n) {
    for (int i = 0; i < n; i++) {
        cout << a[i] << " ";
    }
}
int main() {
    int a[] = { 1,9,2,8,3,7,4,6,5,10 };
    int n = sizeof(a) / sizeof(a[0]);
    SelectSort(a, n);
    print_a(a, n);
    return 0;
}


http://www.ppmy.cn/news/1239269.html

相关文章

Tars框架 Tars-Go 学习

Tars 框架安装 网上安装教程比较多&#xff0c;官方可以参数这个 TARS官方文档 (tarsyun.com) 本文主要介绍部署应用。 安装完成后Tars 界面 增加应用amc 部署申请 amc.GoTestServer.GoTestObj 名称不知道的可以参考自己创建的app config 点击刷新可以看到自己部署的应用 服…

python pdf转txt文本、pdf转json

文章目录 一、前言二、实现方法1. 目录结构2. 代码 一、前言 此方法只能转文本格式的pdf&#xff0c;如果是图片格式的pdf需要用到ocr包&#xff0c;以后如果有这方面需求再加这个方法 二、实现方法 1. 目录结构 2. 代码 pdf2txt.py 代码如下 #!/usr/bin/env python # -*- …

nginx知识梳理及配置详解

软件开发全文档获取&#xff1a;点我获取 nginx安装 #nginx安装 yum -y install gcc pcre-devel openssl-devel #依赖包 useradd -s /sbin/nologin nginx ./configure --prefix/usr/local/nginx #指定安装目录 --usernginx #指定用户 --with-http_ss…

C++算法:字符串中的查找与替换

本周推荐阅读 C二分算法&#xff1a;得到子序列的最少操作次数 题目 你会得到一个字符串 s (索引从 0 开始)&#xff0c;你必须对它执行 k 个替换操作。替换操作以三个长度均为 k 的并行数组给出&#xff1a;indices, sources, targets。 要完成第 i 个替换操作: 检查 子字符…

获取当日的日期三个月后的日期

使用 java.time.LocalDate 类进行计算 import java.time.LocalDate;public class ThreeMonthsLaterExample {public static void main(String[] args) {// 获取当前日期LocalDate currentDate LocalDate.now();// 添加三个月LocalDate threeMonthsLater currentDate.plusMont…

excel单元格加背景颜色不生效?

如果在 Excel 中设置单元格背景颜色而发现不生效&#xff0c;可能有几个原因。以下是一些常见的解决方法&#xff1a; 1. **单元格锁定&#xff1a;** 检查所在单元格是否被锁定。如果单元格被锁定&#xff0c;并且工作表被保护&#xff0c;你可能无法更改其背景颜色。在工作表…

SkyWalking配置报警推送到企业微信

1、先在企业微信群里创建一个机器人&#xff0c;复制webhook的地址&#xff1a; 2、找到SkyWalking部署位置的alarm-settings.yml文件 编辑&#xff0c;在最后面加上此段配置 &#xff01;&#xff01;&#xff01;一定格式要对&#xff0c;不然一直报警报不出来按照网上指导…

Jetson Orin Nano 内核编译

首先是安装编译环境所需的依赖 sudo apt-get install git bison flex libssl-dev zip libncurses-dev makesudo apt-get install build-essential bc下载交叉编译器以及代码&#xff0c;官方链接: link https://developer.nvidia.com/embedded/jetson-linux 解压下载的两个文件…