排序的分类

  根据在排序过程中涉及的存储器不同,可将排序方法分为两大类:内部排序和外部排序。

  内部排序是指待排序列完全存放在内存中所进行的排序过程,适合不太大的元素序列。

  外部排序指的是大文件的排序,待排序的文件无法一次装入内存,将待排序的记录存储再外存储器上,需要在内存和外部存储器之间进行多次数据交换,已达到排序整个文件的目的。

  根据有序序列长度增加所用策略不同,可将内部排序方法分为5类:交换排序、选择排序、插入排序、归并排序和基数排序。其中交换排序、插入排序和选择排序是一个逐步扩大记录的有序序列长度的过程。

  交换排序是对无序区中记录的关键字两两进行比较,若逆序交换,直到关键字之间不存在逆序为止。冒泡排序和快速排序是交换排序中最典型的两个方法。

  简单选择排序和堆排序是选择排序中最典型的两个方法。

  直接插入排序和希尔排序是插入排序中最典型的两个方法。

  归并排序是不断将两个或两个以上有序区合并成一个有序区,直到全部记录有序。

时间: 2024-10-12 20:42:52

排序的分类的相关文章

POJ C++程序设计 编程题#9:人群的排序和分类

编程题#9:人群的排序和分类 来源: 北京大学在线程序评测系统POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 总时间限制: 1000ms 内存限制: 1024kB 描述 对人群按照输入的信息进行排序和分类. #include <iostream> #include <set> #include <iterator> #include <algorithm> using namespace std; // 在此处补

Excel数据管理之排序与分类汇总视频课程

课程目标要使制作或设计的工作表更加具有可读和容易分析,可以通过一些常用的管理来实现,包括排序.分类汇总和筛选等.本课程将介绍相关的知识和技巧.适用人群电脑爱好者.所有职场人士 本课程章节计划表: 第一章 概述.最快速且最简单的排序方法第二章 按行进行排序第三章 按单元格颜色进行排序第四章 多条件排序第五章 自定义排序序列第六章 数据快速筛选及多条件筛选第七章 自定义多条件筛选第八章 自动筛选删除空行及按颜色筛选第九章 快速创建分类汇总第十章 多个汇总字段的分类汇总第十一章 多个汇总方式的分类汇总

javascript通过json数据按格式生成一个按字母分类排序的分类信息表

效果图如下 1.json数据格式 var _people=[{name:'朱瑞',url:'aaaaaa',nick:'zhu'},{name:'刘桂清',url:'aaaaa',nick:'liu'}];这里按姓氏排序借用了nick,不用nick的话,需要加载一个汉字拼音对照数组,判断匹配 2.javascript代码 1 (function ($){ 2 function SortByGroup(arr,option){ 3 this.option=option; 4 this.arr=ar

[原创] 编写函数,实现对链表元素的排序与分类

要求:存在很多元素,如<A,B>,<a,b>,<b,d>,<B, E>, <#,1>, <1, 8>,将这些元素进行分类并排序, 使之输出结果为: <A,B> -- <B,E>; <a,b> -- <b,d> ; <#,1> -- <1,8>; 函数原型:list<listNode> listElementSort ( listNode * listn

MySQL按照汉字的拼音排序、按照首字母分类

项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需要按拼音字母从A到Z分类显示. 如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了),直接在查询语句后面添加ORDER BY name ASC,查询结果将按照姓氏的升序排序:如果存储姓名的字段采用的是utf8字符集,需要在排序的时候对字段进行转码,对应的代码是ORD

数据结构(四十一)排序的基本概念与分类

一.排序的基本概念 假设含有n个记录的序列为{r1,r2,...,rn},其相应的关键字分别为{k1,k2,...,kn},需确定1,2,...,n的一种排列p1,p2,...,pn,使其相应的关键字满足kp1≤kp2≤...≤kpn非递减(或非递增)关系,及时地序列称为一个按关键字有序的序列{rp1,rp2,...,rpn},这样的操作就称为排序. 二.排序的分类 1.稳定排序与不稳定排序 稳定排序:对任意一组数据元素序列,使用某种排序算法对它进行按照关键字的排序,若相同关键字的前后位置关系在

常用排序算法总结1一一冒泡排序

前言 排序算法是一种能将一串数据依照特定排序方式进行排列的一种算法.最常用到的排序方式是数值顺序以及字典顺序. 有效的排序算法在一些算法(例如搜索算法与合并算法)中是重要的,如此这些算法才能得到正确解答.排序算法也用在处理文字数据以及产生人类可读的输出结果.基本上,排序算法的输出必须遵守下列两个原则: 输出结果为递增序列(递增是针对所需的排序顺序而言) 输出结果是原输入的一种排列.或是重组 排序算法分类 在计算机科学所使用的排序算法通常被分类为: 计算的时间复杂度(最差.平均.和最好性能),依据

数据结构之排序

1.排序的分类 在待排序的文件中,若存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,该排序方法是稳定的:若具有相同关键字的记录之间的相对次序发生变化,则称这种排序方法是不稳定的. 稳定的排序 时间复杂度 空间复杂度 冒泡排序 最差和平均是O(n2),最好是O(n)    1  双向冒泡排序 最差和平均是O(n2),最好是O(n)  1 插入排序 最差和平均是O(n2),最好是O(n)   1 归并排序  最差.平均.最好都是O(nlogn) O(n)  桶排序

排序小结

也学习了一段时间的ACM , 是该对所有的排序做个小结. 排序的分类: 1 . 冒泡排序 ( 类似于吐泡泡的方式,每次比较相邻的元素,视情况决定是否交换 ). 2 . 选择排序 ( 此方法是从一组数据中选择出最大的或者最小的数  ) . 3 . 插入排序 4 . 希尔排序 5 . 归并排序 6 . 桶排序 算法的时间复杂度 :