最简单的排序方法。
如果从大到小排序,那么从[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排序算法:(一)直接排序相关推荐

  1. 经典排序算法 - 鸽巢排序Pigeonhole sort

    经典排序算法 - 鸽巢排序Pigeonhole sort 原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了] 鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现 ...

  2. 排序---初级排序算法(选择排序、插入排序和希尔排序)

    写在前面的话: 一枚自学Java和算法的工科妹子. 算法学习书目:算法(第四版) Robert Sedgewick 算法视频教程:Coursera  Algorithms Part1&2 本文 ...

  3. 函数模板案例_利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试

    案例描述: 利用函数模板封装一个排序的函数,可以对不同数据类型数组进行排序 排序规则从大到小,排序算法为选择排序 分别利用char数组和int数组进行测试 #include <iostream& ...

  4. 排序算法之计数排序、基数排序和桶排序

    转自:http://www.cnblogs.com/ttltry-air/archive/2012/08/04/2623302.html 计数排序,基数排序,桶排序等非比较排序算法,平均时间复杂度都是 ...

  5. 排序算法 | 直接选择排序,算法的图解、实现、复杂度和稳定性分析

    排序算法 | 直接选择排序,算法的图解.实现.复杂度和稳定性分析 目录 1.直接选择排序的原理 2.图解直接选择排序 3.算法代码实现 4.算法复杂度分析.稳定性分析 直接选择排序 1.直接选择排序的 ...

  6. 排序算法:桶排序、计数排序、基数排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 这篇博客将主要介绍三种时间复杂度是 ...

  7. JAVA排序算法之希尔排序

    基本介绍 希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法.希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序. 希尔排序法基本思 ...

  8. 堆排序算法c语言筛选法,【排序】排序算法之选择排序

    排序算法之选择排序 罗朝辉(http://www.cppblog.com/kesalin) 转载请注明出处 排序是数据处理中经常使用的一种重要运算,在计算机及其应用系统中,花费在排序上的时间在系统运行 ...

  9. [算法]-排序算法之希尔排序

    希尔排序算法思想 希尔排序的实质就是分组插入排序,该方法又称缩小增量排序. 基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个"增量"的元素组成的)分别进行直接插入排序 ...

  10. 排序算法之--桶排序(桶,像桶一样的排序,听起来很有趣哦0。0)

    排序算法之--桶排序 桶排序的工作的原理是将数组分到有限数量的桶子里,而这个有限数量是指多少个呢? 不急,容我细细道来:我们可以先求出这个数组的最大值和最小值,那么桶的数量就是max-min+1咯 为 ...

最新文章

  1. hdu 3622 二分+2-sat
  2. Berkeley DB的数据存储结构——哈希表(Hash Table)、B树(BTree)、队列(Queue)、记录号(Recno)...
  3. FlexiBO:基于成本感知的深度神经网络多目标优化
  4. Mysql中DATE_SUB 使用方法结合查询一天内,一周内,一月内的信息实例讲解
  5. 智能工单处理,达观数据助力运营商实现业务流程智能化改造
  6. 鸿蒙系统对手机性能的提升,鸿蒙OS手机版再爆新特性,流畅度和性能大幅提升,用户评价很高...
  7. go设置后端启动_Go语言基础(十四)
  8. tf.nn.sigmoid_cross_entropy_with_logits 分类
  9. [转]手游运营后台通用需求
  10. SpringBoot中Async异步方法和定时任务介绍
  11. C语言基础入门实例汇总(共65个案例)
  12. 等级保护三级测评-----云计算安全扩展要求
  13. 小程序API可以实现哪些功能
  14. 硬核科普:一片晶圆可以生产多少芯片?
  15. linux unbuntu
  16. MIST浏览器不能连接私有链
  17. 正面管教读书笔记 08 班会
  18. 一个ppp帧的数据部分(用十六进制写出)是7D 5E FE 27 7D 5D 7D 5D 65 7D 5E。
  19. webpack学习总结
  20. 基于51单片机的篮球计时计分器仿真原理图PCB方案设计

热门文章

  1. ios framework 找不到.h_找不到好看的壁纸?上万张「高清壁纸」,都在iOS捷径里...
  2. VS code常用插件推荐(总结整理篇)
  3. 【ECharts系列|02可视化大屏】 舆情分析,人口分析及警情警力活动情况的实现【上篇】
  4. linux 查看libusb版本,linux / libusb获取usb设备路径
  5. jquery.cookie.js 使用方法
  6. JS ES6中的箭头函数(Arrow Functions)使用
  7. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序
  8. React Native面试知识点
  9. 设计模式(二)模板方法模式
  10. create react app创建的项目运行test的时候不能解析webpack的alisa配置的问题