返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言非数值计算的常用经典排序算法有哪些
  • 494
分享到

C语言非数值计算的常用经典排序算法有哪些

2024-04-02 19:04:59 494人浏览 泡泡鱼
摘要

这篇文章主要讲解了“C语言非数值计算的常用经典排序算法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言非数值计算的常用经典排序算法有哪些”吧!排序

这篇文章主要讲解了“C语言非数值计算的常用经典排序算法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言非数值计算的常用经典排序算法有哪些”吧!

排序

排序是计算机的一种操作方法,其目的是将一组“无序”的记录序列调整为“有序”的记录序列,主要分为内部排序和外部排序。

(1)冒泡排序(起泡排序)

冒泡排序( Bubble Sort ),其基本思路是,对于一组要排序的元素列,依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面,如此继续,直到比较到最后的两个数,将小数放在前面,大数放在后面,重复步骤,直至全部排序完成。

优点:稳定;

缺点:慢,每次只能移动相邻两个数据。

假设要对含有n个数的序列进行升序排列,冒泡排序算法步骤是:

①从存放序列的数组中的第一个元素开始到最后一个元素,依次对相邻两数进行比较,若前者大后者小,则交换两数的位置;

②第①趟结束后,最大数就存放到数组的最后一个元素里了,然后从第一个元素开始到倒数第二个元素,依次对相邻两数进行比较,若前者大后者小,则交换两数的位置;

③重复步骤①n-1趟,每趟比前一趟少比较一次,即可完成所求。

1、任意读入10个整数,将其用冒泡法按升序排列后输出。

C语言非数值计算的常用经典排序算法有哪些

2、传统方法:

C语言非数值计算的常用经典排序算法有哪些

(2)选择法排序

选择排序法是每一趟在 n-i+1 ( i=1 , , …n-1 )个记录中选取关键字最小的记录作为有序序列中第 个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。

优点:移动数据的次数已知(n-1次);

缺点:比较次数多,不稳定。

选择法排序是相对好理解的排序算法。假设要对含有n个数的序列进行升序排列,算法步骤是:

①从数组存放的n个数中找出最小数的下标(算法见下面的“ 求最值 ”),然后将最小数与第1个数交换位置;

②除第1个数以外,再从其余n-1个数中找出最小数(即n个数中的次小数)的下标,将此数与第2个数交换位置;

③重复步骤①n-1趟,即可完成所求。

1、任意读入10个整数,将其用选择法按升序排列后输出。

C语言非数值计算的常用经典排序算法有哪些

2、传统方法:

C语言非数值计算的常用经典排序算法有哪些

函数法:

C语言非数值计算的常用经典排序算法有哪些

(3)插入法排序

优点:稳定,快;

缺点:比较次数不一定,比较次数越多,插入点后的数据移动越多,特别是当数据总量庞大的时候,但用链表可以解决这个问题。

要想很好地掌握此算法,先请了解“有序序列的插入算法”,就是将某数据插入到一个有序序列后,该序列仍然有序。插入算法参见下面的“ 数组元素的插入 ”。

1、将任意读入的整数x插入一升序数列后,数列仍按升序排列。

C语言非数值计算的常用经典排序算法有哪些

插入法排序的要领就是每读入一个数立即插入到最终存放的数组中,每次插入都使得该数组有序。

2、任意读入10个整数,将其用插入法按降序排列后输出。

C语言非数值计算的常用经典排序算法有哪些

(4)归并排序

归并排序( MERGE-SORT )是建立在归并操作上的一种有效的排序算法 该算法是采用分治法( Divide and Conquer )的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并

即将两个都 升序(或降序) 排列的数据序列合并成一个仍按原序排列的序列。

1、有一个含有6个数据的升序序列和一个含有4个数据的升序序列,将二者合并成一个含有10个数据的升序序列。

C语言非数值计算的常用经典排序算法有哪些

(5)字符数组:(逆序排列)如:

1、把输入的字符串逆序排列,如输入ABCDE,输出为EDCBA

C语言非数值计算的常用经典排序算法有哪些

感谢各位的阅读,以上就是“C语言非数值计算的常用经典排序算法有哪些”的内容了,经过本文的学习后,相信大家对C语言非数值计算的常用经典排序算法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: C语言非数值计算的常用经典排序算法有哪些

本文链接: https://lsjlt.com/news/83897.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言非数值计算的常用经典排序算法有哪些
    这篇文章主要讲解了“C语言非数值计算的常用经典排序算法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言非数值计算的常用经典排序算法有哪些”吧!排序...
    99+
    2024-04-02
  • c++常用的排序算法有哪些
    小编给大家分享一下c++常用的排序算法有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!c++常用的排序算法//选择排序法SelectionSort(int a...
    99+
    2023-06-03
  • C语言堆排序经典算法TopK问题解析
    目录问题描述:快速排序TopK问题描述: 从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题 什么是TopK,就是找到一个无序队列中的k个最大数。 TopK...
    99+
    2023-05-15
    C语言堆排序TopK算法 TopK算法问题
  • C语言实现经典排序算法的示例代码
    目录一、冒泡排序1.原理2.实现3.算法分析二、选择排序1.原理2.实现3.算法分析三、插入排序1.原理2.实现3.算法分析四、希尔排序1.原理2.实现3.算法分析总结一、冒泡排序 ...
    99+
    2022-11-13
    C语言排序算法 C语言排序
  • C语言数据结构经典10大排序算法刨析
    1、冒泡排序 // 冒泡排序 #include <stdlib.h> #include <stdio.h> // 采用两层循环实现的方法。 // 参数a...
    99+
    2024-04-02
  • C语言中有哪些简单的排序算法
    这篇文章主要介绍“C语言中有哪些简单的排序算法”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言中有哪些简单的排序算法”文章能帮助大家解决问题。1.冒泡排序(Bubble Sort)基本思想:冒泡...
    99+
    2023-07-05
  • C语言的经典程序有哪些
    本篇内容介绍了“C语言的经典程序有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、C语言必背18个经典程序第一个------乘法表。用...
    99+
    2023-07-02
  • C语言堆排序经典算法TopK问题怎么解决
    本文小编为大家详细介绍“C语言堆排序经典算法TopK问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言堆排序经典算法TopK问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。问题描述:从a...
    99+
    2023-07-05
  • C语言数据结构经典10大排序算法实例分析
    今天小编给大家分享一下C语言数据结构经典10大排序算法实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、冒泡排序//...
    99+
    2023-06-29
  • C语言数据结构与算法排序的方法有哪些
    这篇文章主要介绍“C语言数据结构与算法排序的方法有哪些”,在日常操作中,相信很多人在C语言数据结构与算法排序的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言数据结构与算法排序的方法有哪些”的疑...
    99+
    2023-06-22
  • C++数组排序算法有哪些
    本篇内容主要讲解“C++数组排序算法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++数组排序算法有哪些”吧!三种简单排序1:选择排序(从小到达)从第一...
    99+
    2024-04-02
  • 常用的JS排序算法有哪些
    这篇文章给大家分享的是有关常用的JS排序算法有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.冒泡排序var bubbleSort = fun...
    99+
    2024-04-02
  • c语言实现的几种常用排序算法
    概述 最近重新回顾了一下数据结构和算法的一些基本知识,对几种排序算法有了更多的理解,也趁此机会通过博客做一个总结。 1.选择排序-简单选择排序 选择排序是最简单的一种基于O(n2)时...
    99+
    2024-04-02
  • JavaScript中常用的排序算法有哪些
    这篇文章主要介绍JavaScript中常用的排序算法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、冒泡排序冒泡排序是我们在编程算法中,算是比较常用的排序算法之一,在学习阶段...
    99+
    2024-04-02
  • 常见的php排序算法有哪些
    常见的PHP排序算法有以下几种:1. 冒泡排序(Bubble Sort):依次比较相邻的两个元素,将较大的元素向后移动,直到最后一个...
    99+
    2023-08-25
    php
  • C语言所有经典排序方法的实现代码
    运行结果正确 还是快速排序难一些。 完整代码 #include<stdio.h> #include <stdlib.h> #include <st...
    99+
    2024-04-02
  • 常见的初级排序算法有哪些
    本篇内容主要讲解“常见的初级排序算法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常见的初级排序算法有哪些”吧!前言相信所有的程序员刚开始接触到的算法都会...
    99+
    2024-04-02
  • C语言fft算法的作用有哪些
    C语言中的FFT(快速傅里叶变换)算法主要用于对离散时间信号进行频谱分析,以及信号的压缩和编码等方面。具体来说,FFT算法的作用有以...
    99+
    2023-09-21
    C语言 fft算法
  • Java数据结构常见排序算法有哪些
    今天小编给大家分享一下Java数据结构常见排序算法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、 认识排序在学校中...
    99+
    2023-07-05
  • c语言中有哪些排序的方法
    这期内容当中小编将会给大家带来有关c语言中有哪些排序的方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、选择排序-简单选择排序选择排序是最简单的一种基于O(n2)时间复杂度的排序算法,基本思想是从i=...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作