全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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

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小时内与您取得联系。