数据结构与算法 排序(冒泡,选择,插入)

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
相关文章:
山东网站制作公司有哪些,山东大源集团官网?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
如何快速查询域名建站关键信息?
如何用VPS主机快速搭建个人网站?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何在香港服务器上快速搭建免备案网站?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
建站10G流量真的够用吗?如何应对访问高峰?
如何在服务器上配置二级域名建站?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
实现虚拟支付需哪些建站技术支撑?
如何快速搭建高效服务器建站系统?
高端云建站费用究竟需要多少预算?
大连网站制作公司哪家好一点,大连买房网站哪个好?
如何选择靠谱的建站公司加盟品牌?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
常州自助建站费用包含哪些项目?
黑客如何通过漏洞一步步攻陷网站服务器?
济南网站制作的价格,历城一职专官方网站?
建站之星下载版如何获取与安装?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
佛山企业网站制作公司有哪些,沟通100网上服务官网?
湖北网站制作公司有哪些,湖北清能集团官网?
Thinkphp 中 distinct 的用法解析
如何快速配置高效服务器建站软件?
如何在阿里云香港服务器快速搭建网站?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
盘锦网站制作公司,盘锦大洼有多少5G网站?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
如何通过商城自助建站源码实现零基础高效建站?
如何通过主机屋免费建站教程十分钟搭建网站?
建站主机类型有哪些?如何正确选型
网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
江苏网站制作公司有哪些,江苏书法考级官方网站?
如何在VPS电脑上快速搭建网站?
购物网站制作公司有哪些,哪个购物网站比较好?
定制建站策划方案_专业建站与网站建设方案一站式指南
临沂网站制作企业,临沂第三中学官方网站?
建站之星备案是否影响网站上线时间?
如何在宝塔面板创建新站点?
如何通过WDCP绑定主域名及创建子域名站点?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
制作网站的模板软件,网站怎么建设?
建站之星官网登录失败?如何快速解决?
如何设置并定期更换建站之星安全管理员密码?
,柠檬视频怎样兑换vip?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。