当前位置: 首页 > news >正文

C/C++ 排序算法总结

1.冒泡排序

https://blog.csdn.net/weixin_49303682/article/details/119365319

1 #include <stdio.h>2 3 #define N 94 5 void print(int a[])6 {7     for(int i = 0; i < N; i++)8     {9         printf("%d ", a[i]);
10     }
11         printf("\n");
12 }
13  
14 void maopao(int a[])
15 {
16     int i, j;
17     for (i = 0; i < N -1; i++)
18     {
19         for (j = 0; j < N -1 -i; j++) 
20         {
21             if (a[j] > a[j + 1])
22             {
23                  int temp = a[j];
24                  a[j] = a[j+1];
25                  a[j+1] = temp;
26             }
27         }
28     }
29 }
30  
31 int main()
32 {
33     int a[] = {9,3,1,4,2,7,8,6,5};
34     maopao(a);
35     print(a);
36     
37     return 0;
38 }

2.选择排序

https://blog.csdn.net/weixin_49303682/article/details/119429850

1 #include <stdio.h>2 3 #define N 94 5 void print(int a[])6 {7     for(int i = 0; i < N; i++)8     {9         printf("%d ", a[i]);
10     }
11         printf("\n");
12 }
13  
14 void xuanze(int a[])
15 {
16     int i, j,min,temp;
17     for(i=0;i<N;i++)
18     {
19         min=i;    
20         for(j=i+1;j<N;j++)  
21         {
22             if(a[j]<a[min])    
23             {
24                 min=j;
25             }else{
26                 break;
27             }
28         }
29         temp=a[min];    
30         a[min]=a[i];  
31         a[i]=temp;
32     }
33 }
34  
35 int main()
36 {
37     int a[] = {9,3,1,4,2,7,8,6,5};
38     xuanze(a);
39     print(a);
40     
41     return 0;
42 }

3.直接插入排序

https://blog.csdn.net/weixin_49303682/article/details/119430023

1 #include <stdio.h>2 3 #define N 94 5 void print(int a[])6 {7     for(int i = 0; i < N; i++)8     {9         printf("%d ", a[i]);
10     }
11         printf("\n");
12 }
13  
14 void xuanze(int a[])
15 {
16     int i,j,tmp;
17     for(i = 1;i < N;i++){
18         tmp = a[i];
19         for(j = i-1; j >= 0;j--)
20         {
21             if(tmp < a[j])
22             {
23                 a[j+1] = a[j];
24             }else{
25                 break;
26             } 
27         }
28         a[j+1] = tmp;
29     }
30 }
31  
32 int main()
33 {
34     int a[] = {9,3,1,4,2,7,8,6,5};
35     xuanze(a);
36     print(a);
37     
38     return 0;
39 }

4.shell排序

https://blog.csdn.net/weixin_49303682/article/details/119364710

1 #include <stdio.h>2 3 #define N 94 5 void print(int a[])6 {7     for(int i = 0; i < N; i++)8     {9         printf("%d ", a[i]);
10     }
11         printf("\n");
12 }
13  
14 void shell(int a[])
15 {
16     int i,j,d,tmp;
17     for(d = N/2; d > 0; d /= 2)
18     {
19         for(i = d;i < N;i++)
20         {
21            tmp = a[i];
22            for(j = i-d; j >= 0;j-=d)
23            {
24               if(tmp < a[j])
25               {
26                  a[j+d] = a[j];
27               }else{
28                   break;
29               } 
30            }
31            a[j+d] = tmp;
32         }
33     }
34 }
35  
36 int main()
37 {
38     int a[] = {9,3,1,4,2,7,8,6,5};
39     shell(a);
40     print(a);
41     
42     return 0;
43 }

5.快速排序

https://blog.csdn.net/weixin_49303682/article/details/119364992

1 #include <stdio.h>2 3 #define N 94 5 void print(int a[])6 {7     for(int i = 0; i < N; i++)8     {9         printf("%d ", a[i]);
10     }
11         printf("\n");
12 }
13  
14 int kuaisu(int a[],int i,int j)
15 {
16     int tmp;
17     tmp = a[i];   //将a[i]作为基准保存
18     while(i < j)
19     {
20         while(i < j && tmp < a[j])
21             j--;
22         if(i < j)
23             a[i] = a[j];
24         while(i < j && tmp > a[i])
25             i++;
26         if(i < j)
27             a[j] = a[i];
28     }
29     a[i] = tmp;    
30     return i; 
31 }
32 
33 void digui(int a[],int i,int j)
34 {
35     int mid;
36     if(i < j)
37     {
38         mid = kuaisu(a,i,j);    
39         digui(a,i,mid-1);   
40         digui(a,mid+1,j);  
41     }
42 }
43  
44 int main()
45 {
46     int a[] = {9,3,1,4,2,7,8,6,5};
47     digui(a,0,N-1);
48     print(a);
49     
50     return 0;
51 }

6.二分查找(有序数组)

https://blog.csdn.net/qq_63918780/article/details/122527681

1 #include <stdio.h>2 #include <string.h>3 4 int func(int *a,int j,int x)5 {6     int len = j - 1,i = 0,min;7     while(i<j)8     {9        min = (i+len)/2;
10        if(min > x)
11        {
12           len = min-1;
13        }
14        else if(min < x)
15        {
16           i = min+1;
17        }
18        else
19        {
20           break;
21        }
22     }
23     return min-1;
24 }
25 
26 int main() 
27 {
28     int j,x,num;
29     int a[] = {1,2,3,4,5,6,7,8,9};
30     printf("输入要查找的数\n");
31     scanf("%d",&x);
32     j = sizeof(a)/sizeof(a[0]);
33     num = func(a,j,x);
34     printf("要查找的数为a[%d]\n",num);
35     
36     return 0;
37 }

7.颜色分类

给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。

此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。

https://blog.csdn.net/weixin_38072112/article/details/104375297

1 #include <stdio.h>2 #include <string.h>3 4 #define N 65 6 void swap(int *a,int *b)7 {8     int temp = *a;9     *a = *b;
10     *b = temp;
11 }
12 
13 int main() 
14 {
15     int i = 0,start = 0,end = N-1;
16     int a[] = {2,1,1,0,1,0};
17     while(i<N)
18     {
19         if(a[i] == 0)
20         {
21            swap(&a[i],&a[start]);
22            start++;
23            i++;
24         }
25         else if(a[i] == 2)
26         {
27            swap(&a[i],&a[end]);
28            end--;
29         }
30         else
31         {
32            i++;
33         }
34     }
35     for(int i = 0;i<N-1;i++)
36     {
37         printf("%d ",a[i]);
38     }
39     
40     return 0;
41 }

相关文章:

C/C++ 排序算法总结

1.冒泡排序 https://blog.csdn.net/weixin_49303682/article/details/119365319 1 #include <stdio.h>2 3 #define N 94 5 void print(int a[])6 {7 for(int i 0; i < N; i)8 {9 printf("%d ", a[i]); 10 } 11 printf("…...

机器学习---RBM、KL散度、DBN

1. RBM 1.1 BM BM是由Hinton和Sejnowski提出的一种随机递归神经网络&#xff0c;可以看做是一种随机生成的 Hopfield网络&#xff0c;是能够通过学习数据的固有内在表示解决困难学习问题的最早的人工神经网络之 一&#xff0c;因样本分布遵循玻尔兹曼分布而命名为BM。BM由二…...

(c语言)有序序列合并

#include<stdio.h>//输入包含三行 //第一行包含两个正整数n,m&#xff0c;用空格分割,n表示第二行第一个升序序列中 //数字的个数,m表示第三行第二个升序序列中数字的个数 //第二行包含n个整数&#xff0c;用空格分割 //第三行包含m个整数&#xff0c;用空格分割 //输出…...

小谈设计模式(18)—适配器模式

小谈设计模式&#xff08;18&#xff09;—适配器模式 专栏介绍专栏地址专栏介绍 适配器模式角色分析目标接口&#xff08;Target&#xff09;源接口&#xff08;Adaptee&#xff09;适配器&#xff08;Adapter&#xff09; 核心思想应用场景Java程序实现输出结果程序分析123 优…...

Python柱形图

柱形图 柱形图&#xff0c;又称长条图、柱状统计图、条图、条状图、棒形图&#xff0c;是一种以长方形的长度为变量的统计图表。长条图用来比较两个或以上的价值&#xff08;不同时间或者不同条件&#xff09;&#xff0c;只有一个变量&#xff0c;通常利用于较小的数据集分析…...

用OpenCV(Python)获取图像的SIFT特征

import cv2 as cv import numpy as np import matplotlib.pyplot as plt imgcv.imread("../Lena.png") img_graycv.cvtColor(img,cv.COLOR_BGR2GRAY)#创建一个SIFI对象 siftcv.SIFT_create()#使用SIFT对象在灰度图像img_gray中检测关键点&#xff0c;结果存储在变量k…...

阿里云ECS和轻量服务器有什么区别?

阿里云服务器ECS和轻量应用服务器有什么区别&#xff1f;轻量和ECS优缺点对比&#xff0c;云服务器ECS是明星级云产品&#xff0c;适合企业专业级的使用场景&#xff0c;轻量应用服务器是在ECS的基础上推出的轻量级云服务器&#xff0c;适合个人开发者单机应用访问量不高的网站…...

华为云云耀云服务器L实例评测|安装搭建学生成绩管理系统

1.前言概述 华为云耀云服务器L实例是新一代开箱即用、面向中小企业和开发者打造的全新轻量应用云服务器。多种产品规格&#xff0c;满足您对成本、性能及技术创新的诉求。云耀云服务器L实例提供丰富严选的应用镜像&#xff0c;实现应用一键部署&#xff0c;助力客户便捷高效的在…...

Audacity 使用教程:轻松录制、编辑音频

Audacity 使用教程&#xff1a;轻松录制、编辑音频 1. 简介 Audacity 是一款免费、开源且功能强大的音频录制和编辑软件。它适用于 Windows、Mac 和 Linux 等多种操作系统&#xff0c;适合音乐制作、广播后期制作以及普通用户进行音频处理。本教程将带领大家熟悉 Audacity 的…...

深入了解“注意力”和“变形金刚”-第2部分

一、说明 在上一个故事中&#xff0c;我已经解释了什么是注意力机制&#xff0c;以及与转换器相关的一些重要关键字和块&#xff0c;例如自我注意、查询、键和值以及多头注意力。 在这一部分中&#xff0c;我将解释这些注意力块如何帮助创建转换器网络&#xff0c;并详细讨论网…...

​“债务飙升!美国一天内增加2750亿美元,金融震荡的前奏已拉开帷幕!”

2023年10月4日&#xff0c;美国政府向美国债务追加2750亿美元&#xff0c;相当于现在比特币&#xff08;BTC&#xff09;总市值的一半还多。 有人会说:多一点、少一点&#xff0c;没什么区别.....确实&#xff0c;当你看美国债务时&#xff0c;2750亿美元并没有什么意义&#x…...

最新Uniapp软件社区-全新带勋章源码

测试环境&#xff1a;php7.1。ng1.2&#xff0c;MySQL 5.6 常见问题&#xff1a; 配置好登录后转圈圈&#xff0c;检查环境及伪静态以及后台创建好应用 上传图片不了&#xff0c;检查php拓展fileinfo 以及public文件权限 App个人主页随机背景图&#xff0c;在前端uitl文件夹里面…...

基于goravel的CMS,企业官网通用golang后台管理系统

2023年9月11日10:47:00 仓库地址&#xff1a; https://gitee.com/open-php/zx-goravel-website 框架介绍 Goravel SCUI 后端开发组件 go 1.20 Goravel 1.13 数据库 sql(使用最新日期文件) goravel\doc\sql_bak mysql 8.0 前端开发组件 scui 1.6.9 node v14.21.3 效果图…...

(五)激光线扫描-位移台标定

线激光属于主动测量方式,但是由于线激光的特性,我们只能通过提取激光中心线获取这一条线上的高度信息,那么要进行三维重建的话,就需要通过平移或者是旋转的方式,来让线激光扫描被测物体的完整轮廓,也就是整个表面。激光线的密度越高还原出来的物体越细腻,但由于数据量大…...

媒体发稿:为什么选择国内媒体推广一文带你领略其魅

随着互联网的飞速发展&#xff0c;媒体推广成为企业宣传的重要方式。国内媒体推广因其独特的魅力和广泛的传播渠道&#xff0c;逐渐成为企业选择的首选。本文将探讨为什么选择国内媒体推广&#xff0c;并带您领略其魅力。 1. 国内媒体推广的广泛传播渠道 国内媒体推广拥有广泛…...

基于自私羊群优化的BP神经网络(分类应用) - 附代码

基于自私羊群优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于自私羊群优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.自私羊群优化BP神经网络3.1 BP神经网络参数设置3.2 自私羊群算法应用 4.测试结果…...

AI绘图:GPT4技术的艺术化呈现与无限可能

了解更多点击《AI绘图&#xff1a;GPT4技术的艺术化呈现与无限可能》 GPT对于每个科研人员已经成为不可或缺的辅助工具&#xff0c;不同的研究领域和项目具有不同的需求。例如在科研编程、绘图领域&#xff1a; 1、编程建议和示例代码: 无论你使用的编程语言是Python、R、MATL…...

Go Gin Gorm Casbin权限管理实现 - 1. Casbin概念介绍以及库使用

1. 核心概念 核心配置中含两部分模型配置以及策略配置&#xff0c;给出两个示范配置&#xff0c;在此基础上对实际请求进行分析。 1.1 Model 模型文件&#xff0c;存储了请求定义(request_definition)&#xff0c;策略定义(policy_definition)&#xff0c;匹配规则(matchers)&a…...

JUC第十五讲:JUC集合-ConcurrentHashMap详解(面试的重点)

JUC第十五讲&#xff1a;JUC集合-ConcurrentHashMap详解 本文是JUC第十五讲&#xff1a;JUC集合-ConcurrentHashMap详解。JDK1.7之前的ConcurrentHashMap使用分段锁机制实现&#xff0c;JDK1.8则使用数组链表红黑树数据结构和CAS原子操作实现ConcurrentHashMap&#xff1b;本文…...

【TensorFlow Hub】:有 100 个预训练模型等你用

要访问TensorFlow Hub&#xff0c;请单击此处 — https://www.tensorflow.org/hub 一、说明 TensorFlow Hub是一个库&#xff0c;用于在TensorFlow中发布&#xff0c;发现和使用可重用模型。它提供了一种使用预训练模型执行各种任务&#xff08;如图像分类、文本分析等&#xf…...

vulnhub靶机doubletrouble

下载地址&#xff1a;doubletrouble: 1 ~ VulnHub 主机发现 arp-scan -l 端口扫描 nmap --min-rate 1000 -p- 192.168.21.151 端口服务扫描 nmap -sV -sT -O -p22,80 192.168.21.151 漏洞扫描 nmap --scriptvuln -p22,80 192.168.21.151 先去看看web页面 这里使用的是qdpm …...

【数据结构】排序算法(二)—>冒泡排序、快速排序、归并排序、计数排序

&#x1f440;樊梓慕&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》 &#x1f31d;每一个不曾起舞的日子&#xff0c;都是对生命的辜负 目录 前言 1.冒泡排序 2.快速排序 2.1Hoare版 2.2占…...

SpringCloud-消息组件

1 简介 了解过RabbitMQ后&#xff0c;可能我们会遇到不同的系统在用不同的队列。比如系统A用的Kafka&#xff0c;系统B用的RabbitMQ&#xff0c;但是没了解过Kafka&#xff0c;因此可以使用Spring Stream&#xff0c;它能够屏蔽地产&#xff0c;像JDBC一样&#xff0c;只关心SQ…...

oringin的x轴(按x轴规定值)绘制不规律的横坐标

1.双击x轴 2.选择刻度线标签 3.选择刻度...

ubuntu安装MySQL

一行指令即可! sudo apt install mysql-server常用MySQL服务指令 sudo service mysql status # 查看服务状态 sudo service mysql start # 启动服务 sudo service mysql stop # 停止服务 sudo service mysql restart # 重启服务终端里面进入Mysql 其中-u后面root是我的用户名…...

背包问题学习笔记-多重背包问题

题意描述&#xff1a; 有 N 种物品和一个容量是 V 的背包。第 i 种物品最多有 si 件&#xff0c;每件体积是 vi&#xff0c;价值是 wi。求解将哪些物品装入背包&#xff0c;可使物品体积总和不超过背包容量&#xff0c;且价值总和最大。 输出最大价值。输入格式 第一行两个整数…...

Net相关的各类开源项目

Net相关的各类开源项目 WPFHandyControlLive-ChartsWPFDeveloperswpf-uidesignStylet WebScheduleMasterYiShaAdminBlog.CoreNebula.AdminNewLife.CubeOpenAuth UnityuGUIUnityCsReferenceEpitomeMyUnityFrameWorkKSFrameworkTowerDefense-GameFramework-Demo 通用ClientServer…...

阿里云服务器修改IP地址的两种方法

阿里云服务器可以更换IP地址吗&#xff1f;可以的&#xff0c;创建6小时以内的云服务器ECS可以免费更换三次公网IP地址&#xff0c;超过6小时的云服务器&#xff0c;可以将公网固定IP地址转成弹性EIP&#xff0c;然后通过换绑EIP的方式来更换IP地址。阿里云服务器网分享阿里云服…...

SpringMVC的数据绑定

一、前言 SpringMVC的数据绑定是指将HTTP请求参数绑定到Java对象上。这样可以方便地从请求中获取数据并将其传递给业务逻辑。在SpringMVC中&#xff0c;可以使用RequestParam和ModelAttribute等注解来实现数据绑定。 二、使用RequestParam注解 RequestParam注解用于将请求参…...

1.1.OpenCV技能树--第一单元--OpenCV简介

目录 1.文章内容来源 2.OpenCV简介 3.课后习题代码复现 4.易错点总结与反思 1.文章内容来源 1.题目来源:https://edu.csdn.net/skill/practice/opencv-77f629e4593845b0bf97e74ca8ec95ae/8292?languageopencv&materialId20807 2.资料来源:https://edu.csdn.net/skill…...

银川森林半岛/深圳seo优化服务商

System Center Virtual Machine Manager (VMM) 2012是 System Center 2012产品系列中的一个关键组件&#xff0c;该产品的功能范围正在显著扩展&#xff0c;VMM2012可以称为“System Center 虚拟中心管理器”。 VMM 2012可以通过其管理的Windows部署服务&#xff0c;为Hyper-V进…...

嘉兴做微网站/企业网站建设方案

不久前因为一个多星期没怎么关机&#xff0c;再开机时已轰然作响。打开机箱发现居然有两个小风扇——主板北桥芯片上的风扇和显卡上的风扇&#xff0c;拆下来数次&#xff0c;擦洗、加油&#xff0c;但显卡风扇始终不领情&#xff0c;我响我素。  无奈&#xff0c;现在只好把…...

在线ppt制作网站有哪些/真正免费的网站建站平台有哪些

首先用xshell登陆centos7&#xff0c;一、系统目录结构在命令窗口输入ls /ls是list的缩写&#xff0c;用于列出指定目录或者文件/是linux操作系统的根目录&#xff0c;所有文件与目录都在它下面&#xff1b;此时将会显示如下/bin&#xff1a;bin是Binary的缩写&#xff0c;该目…...

页面设计的突出主体原则/石首seo排名

Opencv2标志着opencv革命性的改变&#xff0c;Opencv2带来了全新的C接口&#xff0c;将Opencv的能力无限放大。在2.0时代&#xff0c;opencv增加了新的平台支持&#xff0c;包括iOS和Android&#xff0c;通过CUDA和openGL实现了GPU加速&#xff0c;为Python和Java用户提供了接口…...

营销型网站建设网络推广/推广网站最有效办法

2019独角兽企业重金招聘Python工程师标准>>> My97DatePickerBeta 只 显示 年月 的 选择 格式 <input type"text" id"d243" onfocus"WdatePicker({skin:whyGreen,dateFmt:yyyy年MM月})" class"Wdate"/> 转载于:https:…...

机电建设有限公司网站/个人网站设计模板

这篇文章只是纯粹分析python pyc文件格式&#xff0c;主要是关于pyc在文件中的存储方式进行了解析。pyc是python字节码在文件中存储的方式&#xff0c;而在虚拟机运行时环境中对应PyCodeObject对象。关于PyFrameObject以及PyFunctionObject等运行时结构&#xff0c;后续希望学习…...