数据结构与算法 排序(冒泡,选择,插入)
发布时间 - 2026-01-11 02:28:08 点击率:次数据结构与算法 排序(冒泡,选择,插入)

1.冒泡排序
1.1算法
冒泡排序(buddle-sort)算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
1.2 实现
//
// main.c
// BubbleSort
//
// Created by Wuyixin on 2017/6/2.
// Copyright © 2017年 Coding365. All rights reserved.
//
#include <stdio.h>
void bubbleSort(int a[],int n){
int i,j;
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i; j++) {
if (a[j] > a[j + 1]){
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
}
int main(int argc, const char * argv[]) {
int a[] = {9,3,1,4,7,6,5,8,2};
bubbleSort(a, 9);
int i = 0;
while (i < 9)
printf("%d ",a[i++]);
return 0;
}
2.选择排序
2.1 算法
选择排序(selection-sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完
2.2实现
//
// main.c
// SelectionSort
//
// Created by Wuyixin on 2017/6/2.
// Copyright © 2017年 Coding365. All rights reserved.
//
#include <stdio.h>
void selectionSort(int a[],int n){
int i,j,min,temp;
for (i = 0; i < n; i++) {
min = i;
for (j = i + 1; j < n; j++) {
if (a[j] < a[min])
min = j;
}
if (i != min){
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
int main(int argc, const char * argv[]) {
int a[] = {9,3,1,4,7,6,5,8,2};
selectionSort(a, 9);
int i = 0;
while (i < 9)
printf("%d ",a[i++]);
return 0;
}
3.插入排序
3.1 算法
插入排序(insertion-sort)的基本思想是:每步将一个待排序的纪录,按其关键码值的大小插入前面已经排序的文件中适当位置上,直到全部插入完为止。
3.2 实现
//
// main.c
// InsertionSort
//
// Created by Wuyixin on 2017/6/2.
// Copyright © 2017年 Coding365. All rights reserved.
//
#include <stdio.h>
void insertionSort(int a[],int n){
int i,j,temp;
for (i = 1; i < n ; i++) {
temp = a[i];
for (j = i; j > 0 && temp < a[j - 1]; j--) {
a[j] = a[j - 1];
}
a[j] = temp;
}
}
int main(int argc, const char * argv[]) {
int a[] = {9,3,1,4,7,6,5,8,2};
insertionSort(a, 9);
int i = 0;
while (i < 9)
printf("%d ",a[i++]);
return 0;
}
以上就是对C语言数据结构与算法中排序的讲解,大家如有疑问可以留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# 数据结构与算法
# 排序(冒泡
# 选择
# 插入)
# 排序算法
# C++ 数据结构 堆排序的实现
# java数据结构排序算法之归并排序详解
# C语言中数据结构之链表归并排序实例代码
# C语言 数据结构堆排序顺序存储(升序)
# C语言数据结构 链表与归并排序实例详解
# 数据结构
# 是一种
# 放在
# 第一个
# 在这
# 如有
# 没有任何
# 希望能
# 第二个
# 谢谢大家
# 工作原理
# 越少
# 按其
# 对越
# Wuyixin
# BubbleSort
# main
# Created
# rights
# copy
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
linux top下的 minerd 木马清除方法
Laravel怎么发送邮件_Laravel Mail类SMTP配置教程
用yum安装MySQLdb模块的步骤方法
Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲
晋江文学城电脑版官网 晋江文学城网页版直接进入
详解CentOS6.5 安装 MySQL5.1.71的方法
Laravel怎么导出Excel文件_Laravel Excel插件使用教程
android nfc常用标签读取总结
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
如何解决hover在ie6中的兼容性问题
Android实现代码画虚线边框背景效果
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
javascript读取文本节点方法小结
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
,交易猫的商品怎么发布到网站上去?
Python文件流缓冲机制_IO性能解析【教程】
网站制作软件有哪些,制图软件有哪些?
如何在Windows服务器上快速搭建网站?
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
javascript基本数据类型及类型检测常用方法小结
如何在局域网内绑定自建网站域名?
如何在IIS服务器上快速部署高效网站?
js代码实现下拉菜单【推荐】
php结合redis实现高并发下的抢购、秒杀功能的实例
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
Laravel如何发送系统通知?(Notification渠道示例)
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
Swift中循环语句中的转移语句 break 和 continue
网站制作企业,网站的banner和导航栏是指什么?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
网页设计与网站制作内容,怎样注册网站?
如何有效防御Web建站篡改攻击?
微信小程序 input输入框控件详解及实例(多种示例)
JS碰撞运动实现方法详解
如何在建站主机中优化服务器配置?
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
php 三元运算符实例详细介绍
Linux安全能力提升路径_长期防护思维说明【指导】
深入理解Android中的xmlns:tools属性
Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】
Win11怎么关闭专注助手 Win11关闭免打扰模式设置【操作】
node.js报错:Cannot find module 'ejs'的解决办法
Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】

