数据--第27课 - 初始斗转
第27课 - 初始斗转
1. 选择排序
每一次选出前面的元素最小的元素作为第i个元素。
程序:
#include <stdio.h>
void println(int array[], int len)
{
int i = 0;
for(i=0; i<len; i++)
{
printf("%d ", array[i]);
}
printf("\n");
}
void swap(int array[], int i, int j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
void SelectionSort(int array[], int len) // O(n*n)
{
int i = 0;
int j = 0;
int k = -1;
for(i=0; i<len; i++)
{
k = i;
for(j=i; j<len; j++)
{
if( array[j] < array[k] )
{
k = j;
}
}
swap(array, i, k);
}
}
int main()
{
int array[] = {21, 25, 49, 25, 16, 8};
int len = sizeof(array) / sizeof(*array);
println(array, len);
SelectionSort(array, len);
println(array, len);
return 0;
}
2. 插入排序
当插入第i个元素的时候,前面的元素都已经排列好了。我们用V[i]的关键字与前面的关键字进行比较,找到插入位置,将V[i]插入即可。原来位置上的对象向后顺移。
程序:
#include <stdio.h>
void println(int array[], int len)
{
int i = 0;
for(i=0; i<len; i++)
{
printf("%d ", array[i]);
}
printf("\n");
}
void swap(int array[], int i, int j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
void InertionSort(int array[], int len) // O(n*n)
{
int i = 0;
int j = 0;
int k = -1;
int temp = -1;
for(i=1; i<len; i++)
{
k = i;
temp = array[k];
for(j=i-1; (j>=0) && (array[j]>temp); j--)
{
array[j+1] = array[j];
k = j;
}
array[k] = temp;
}
}
int main()
{
int array[] = {21, 25, 49, 25, 16, 8};
int len = sizeof(array) / sizeof(*array);
println(array, len);
InertionSort(array, len);
println(array, len);
return 0;
}
3. 冒泡排序
设代排序的数据元素有n个,最多作n-1趟。走一趟选一个。
程序:
#include <stdio.h>
void println(int array[], int len)
{
int i = 0;
for(i=0; i<len; i++)
{
printf("%d ", array[i]);
}
printf("\n");
}
void swap(int array[], int i, int j)
{
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
void BubbleSort(int array[], int len) // O(n*n)
{
int i = 0;
int j = 0;
int exchange = 1;
for(i=0; (i<len) && exchange; i++)
{
exchange = 0;
for(j=len-1; j>i; j--)
{
if( array[j] < array[j-1] )
{
swap(array, j, j-1);
exchange = 1;
}
}
}
}
int main()
{
int array[] = {21, 25, 49, 25, 16, 8};
int len = sizeof(array) / sizeof(*array);
println(array, len);
BubbleSort(array, len);
println(array, len);
return 0;
}
小结:
选择排序,插入排序以及冒泡排序的算法思想简单,而且算法的时间复杂程度都是O(n2)。
这三种排序的算法都是稳定的。
转载于:https://www.cnblogs.com/free-1122/p/11336010.html
数据--第27课 - 初始斗转相关推荐
- webgl第27课-三维空间-不同位置的三角形
需要电子档书籍可以Q群:828202939 希望可以和大家一起学习.一起进步!! 所有的课程源代码在我上传的资源里面,本来想设置开源,好像不行!博客和专栏同步! 如有错别字或有理解不到位的地方,可 ...
- 当且仅当函数依赖a→b在r上成立_数据库第06章关系数据理习题课.ppt
您所在位置:网站首页 > 海量文档  > 计算机 > 数据结构与算法 数据库第06章关系数据理习题课.ppt36页 本 ...
- python逐笔输入数据_知到智慧树Python数据分析与数据可视化结课测验
知到智慧树Python数据分析与数据可视化结课测验答案 更多相关问题 已知三角形三个顶点的坐标是A(-1,2,3),B(1,1,1),C(0,0,5),试证三角形ABC是直角三角形,并求角B-- Wh ...
- 大数据入门第一课 Hadoop基础知识与电商网站日志数据分析
大数据入门第一课 Hadoop基础知识与电商网站日志数据分析 本课程从Hadoop核心技术入手,以电商项目为依托,带领你从0基础开始上手,逐步掌握大数据核心技术(如:HDFS.YARN.MapRedu ...
- 视频教程-大数据分析师实战课-大数据
大数据分析师实战课 任老师,Cloudera管理/开发/分析认证讲师,华为高级特聘讲师,新华三大学高级特聘讲师,中国大数据技术与应用联盟高级讲师,全国高校大数据联盟特聘讲师,中国移动高级讲师,前IBM ...
- 《Spark商业案例与性能调优实战100课》第27课:彻底解密Spark Shuffle令人费解的6大经典问题
<Spark商业案例与性能调优实战100课>第27课:彻底解密Spark Shuffle令人费解的6大经典问题
- .NET Core开发实战(第27课:定义Entity:区分领域模型的内在逻辑和外在行为)--学习笔记...
27 | 定义Entity:区分领域模型的内在逻辑和外在行为 上一节讲到领域模型分为两层 一层是抽象层,定义了公共的接口和类 另一层就是领域模型的定义层 先看一下抽象层的定义 1.实体接口 IEnti ...
- Ext.js 进入页面直接加载数据、输入框设置初始值
Ext.js使用过程中遇到的一些问题 直接加载数据 输入框设置初始值 直接加载数据 加上这段代码,可以在显示页面的过程中传入参数,执行查询,显示结果. Ext.onReady(function () ...
- 大数据学习第一课:虚拟机安装配置
本章主要内容 VirtualBox下安装CentOS7 Minimal版本 Minimal版本Centos7静态IP网络设置 ssh免密登录设置 我们现在身处数据时代,大数据和人工智能已经逐渐渗透到我 ...
- Conflux 进阶课 | 初始阶段通证发行数量
Conflux 进阶课 在这里,Conflux 团队成员将敞开心扉,权威解析 Conflux 网络最新进展.生态构建进程等信息,没有八卦.没有小道消息,绝对干货.绝对知无不言,想要 360° 无死角了 ...
最新文章
- Digg 让 八 动起来,让 八 产生价值
- Altium designer不显示飞线的三种方法
- linux kernel浮点处理
- tomcat mysql如何优化_Tomcat+Mysql高并发配置优化讲解
- OpenCV Mat基础认知感
- HTTPConnectionPool(host:XX)Max retries exceeded with url 解决方法
- a+ open python_python编程之文件操作
- 孙鑫老师的j2ee教程—j2ee视频教程
- Jad批量反编译class
- 小车|PID算法 闭环控制 带有 霍尔编码器 的电机
- Atitit 常用街机系统and 模拟器总结 snk neo geo cps mame sfc smc
- 关于华硕飞行堡垒系列无法使用扇热小风扇的问题
- TFBGA240+25封装尺寸图
- html文字段落设置,p字间距 html段落内文字设置字间距间隔
- 男人在神永恒国度里的沉思录
- 做好一个BI项目的关键是什么
- 华硕h410csm怎么开启_华硕主板怎么设置U盘启动 华硕主板设置U盘启动教程
- Unity3D基础知识笔记
- pandas删除含有空值的行
- 行业太捐了,下半年该咋整
热门文章
- 静态的顺序表(C语言实现)
- MapReduce计算框架知识总结(一)
- 从源码角度分析android事件分发处理机制
- slxrom+v.21+原生android+4.2,小米4移动联通版 魔趣OS 安卓10 MagiskV21版 完美ROOT 纯净完美 原生极简 纯净推荐...
- cacti升级后还是用的旧路径_Flutter1.9升级体验及填坑全攻略
- 关于直播,所有的技术细节都在这里了(二)
- php单引号中变量,php中单引号双引号那点事---顺便说说把php变量的值传给js
- php 多个files 数量,php – 具有多个字段时$_FILES数组的奇怪格式
- c#服务器后台搭建_微信影视小程序搭建拆解:第一课,影视小程序简介,搭建影视小程序的整体流程...
- python从入门到实践第二版_【Python入门教程】第二季网络爬虫基础