C排序算法:(一)直接排序
最简单的排序方法。
如果从大到小排序,那么从[0]元素开始,和后面的元素进行对比,如果后面元素大,则和[0]元素交换。
核心思想:选定基准元素,和其他元素对比。
#include <stdio.h>unsigned char buff1[] = { 15, 32, 35, 45, 58, 96, 7, 8, 12 };unsigned char buff2[] = { 23, 57, 31, 98, 77, 66, 95, 85, 17 };void Direct_Switch_Big_To_Small(unsigned char *input_data, unsigned int input_length)
{unsigned int i = 0, j = 0;unsigned char temp = 0;for (i = 0; i < input_length - 1; i++) //这里-1可以节约一次循环时间{for (j = i + 1; j < input_length; j++){if (input_data[i] < input_data[j]){temp = input_data[i];input_data[i] = input_data[j];input_data[j] = temp;}}}
}void Direct_Switch_Small_To_Big(unsigned char *input_data, unsigned int input_length)
{unsigned int i = 0, j = 0;unsigned char temp = 0;for (i = 0; i < input_length - 1; i++) //这里-1可以节约一次循环时间{for (j = i + 1; j < input_length; j++){if (input_data[i] > input_data[j]){temp = input_data[i];input_data[i] = input_data[j];input_data[j] = temp;}}}
}int main()
{int i = 0;Direct_Switch_Big_To_Small(buff1, sizeof(buff1));for (i = 0; i < sizeof(buff1); i++){printf("%d ", buff1[i]);}printf("\r\n");Direct_Switch_Small_To_Big(buff2, sizeof(buff2));for (i = 0; i < sizeof(buff2); i++){printf("%d ", buff2[i]);}printf("\r\n");
}
不过从函数实现的过程可以看出,直接排序并不是一个高效的排序方法,但优点是便于理解,几乎所有人都可以实现。
C排序算法:(一)直接排序相关推荐
- 经典排序算法 - 鸽巢排序Pigeonhole sort
经典排序算法 - 鸽巢排序Pigeonhole sort 原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了] 鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现 ...
- 排序---初级排序算法(选择排序、插入排序和希尔排序)
写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera Algorithms Part1&2 本文 ...
- 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试
案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...
- 排序算法之计数排序、基数排序和桶排序
转自:http://www.cnblogs.com/ttltry-air/archive/2012/08/04/2623302.html 计数排序,基数排序,桶排序等非比较排序算法,平均时间复杂度都是 ...
- 排序算法 | 直接选择排序,算法的图解、实现、复杂度和稳定性分析
排序算法 | 直接选择排序,算法的图解.实现.复杂度和稳定性分析 目录 1.直接选择排序的原理 2.图解直接选择排序 3.算法代码实现 4.算法复杂度分析.稳定性分析 直接选择排序 1.直接选择排序的 ...
- 排序算法:桶排序、计数排序、基数排序
相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 这篇博客将主要介绍三种时间复杂度是 ...
- JAVA排序算法之希尔排序
基本介绍 希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法.希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序. 希尔排序法基本思 ...
- 堆排序算法c语言筛选法,【排序】排序算法之选择排序
排序算法之选择排序 罗朝辉(http://www.cppblog.com/kesalin) 转载请注明出处 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行 ...
- [算法]-排序算法之希尔排序
希尔排序算法思想 希尔排序的实质就是分组插入排序,该方法又称缩小增量排序. 基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个"增量"的元素组成的)分别进行直接插入排序 ...
- 排序算法之--桶排序(桶,像桶一样的排序,听起来很有趣哦0。0)
排序算法之--桶排序 桶排序的工作的原理是将数组分到有限数量的桶子里,而这个有限数量是指多少个呢? 不急,容我细细道来:我们可以先求出这个数组的最大值和最小值,那么桶的数量就是max-min+1咯 为 ...
最新文章
- hdu 3622 二分+2-sat
- Berkeley DB的数据存储结构——哈希表(Hash Table)、B树(BTree)、队列(Queue)、记录号(Recno)...
- FlexiBO:基于成本感知的深度神经网络多目标优化
- Mysql中DATE_SUB 使用方法结合查询一天内,一周内,一月内的信息实例讲解
- 智能工单处理,达观数据助力运营商实现业务流程智能化改造
- 鸿蒙系统对手机性能的提升,鸿蒙OS手机版再爆新特性,流畅度和性能大幅提升,用户评价很高...
- go设置后端启动_Go语言基础(十四)
- tf.nn.sigmoid_cross_entropy_with_logits 分类
- [转]手游运营后台通用需求
- SpringBoot中Async异步方法和定时任务介绍
- C语言基础入门实例汇总(共65个案例)
- 等级保护三级测评-----云计算安全扩展要求
- 小程序API可以实现哪些功能
- 硬核科普:一片晶圆可以生产多少芯片?
- linux unbuntu
- MIST浏览器不能连接私有链
- 正面管教读书笔记 08 班会
- 一个ppp帧的数据部分(用十六进制写出)是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。
- webpack学习总结
- 基于51单片机的篮球计时计分器仿真原理图PCB方案设计
热门文章
- ios framework 找不到.h_找不到好看的壁纸?上万张「高清壁纸」,都在iOS捷径里...
- VS code常用插件推荐(总结整理篇)
- 【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【上篇】
- linux 查看libusb版本,linux / libusb获取usb设备路径
- jquery.cookie.js 使用方法
- JS ES6中的箭头函数(Arrow Functions)使用
- 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序
- React Native面试知识点
- 设计模式(二)模板方法模式
- create react app创建的项目运行test的时候不能解析webpack的alisa配置的问题