第8章排序 本章中主要介绍下列内 谷: 插入排序 交换排序 选择排序 归并排序 基数排序 西加大学数学与信息学院
ぜ喙【 ᣁᎾ ݙ߫ᴀゴЁЏ㽕ҟ㒡ϟ ᆍ˖ l ᦦܹᥦᑣ l Ѹᤶᥦᑣ l 䗝ᢽᥦᑣ l ᔦᑊᥦᑣ l ᭄ᥦᑣ ߎ䗔
81基本概念 8,2插入排序 8.3交换排序 8.4选择排序 8.5归并排序 8.6基数排序 西加大学数学与信息学院
8.1 ᴀὖᗉ 8.2 ᦦܹᥦᑣ 8.3 Ѹᤶᥦᑣ 8.4 䗝ᢽᥦᑣ 8.5 ᔦᑊᥦᑣ 8.6 ᭄ᥦᑣ
8.1基本概念 关键字是数据元素中的某个数据项。如果某个数 据项可以唯一地确定一个数据元素,就将其称为主关 键字;否则,称为次关键字。 排序是把一组无序地数据元素按照关键字值递增 (或递减)地重新排列。如果排序依据的是主关键 字,排序的结果将是唯一的, 排序算法的稳定性如果在待排序的记录序列中有 多个数据元素的关键字值相同,经过排序后,这些数 据元素的相对次序保持不变,则称这种排序算法是稳 定的,否则称之为不稳定的。 西加大学数学与信息学院
8.1 ᴀὖᗉ ݇䬂ᄫ ᰃ᭄ܗ㋴ЁⱘᶤϾ᭄乍DŽབᵰᶤϾ᭄ 乍ৃҹଃϔഄ⹂ᅮϔϾ᭄ܗ㋴ˈህᇚ݊⿄ЎЏ݇ 䬂ᄫ˗৺߭ˈ⿄Ў݇䬂ᄫDŽ ᥦᑣ ᰃᡞϔ㒘᮴ᑣഄ᭄ܗ㋴ᣝ✻݇䬂ᄫؐ䗦 ˄䗦ޣഄ˅䞡ᮄᥦ߫DŽབᵰᥦᑣձⱘᰃЏ݇䬂 ᄫˈᥦᑣⱘ㒧ᵰᇚᰃଃϔⱘˈ ᥦᑣㅫ⊩ⱘ〇ᅮᗻ བᵰᕙᥦᑣⱘ䆄ᔩᑣ߫Ё᳝ Ͼ᭄ܗ㋴ⱘ݇䬂ᄫؐⳌৠˈ㒣䖛ᥦᑣৢˈ䖭ѯ᭄ ܗ㋴ⱘⳌᇍᑣֱᣕϡবˈ߭⿄䖭⾡ᥦᑣㅫ⊩ᰃ〇 ᅮⱘˈ৺߭⿄ПЎϡ〇ᅮⱘDŽ
内部排序与外部排序根据在排序过程中待排序的 所有数据元素是否全部被放置在内存中,可将排序方 法分为内部排序和外部排序两大类。内部排序是指在 排序的整个过程中,待排序的所有数据元素全部被放 置在内存中;外部排序是指由于待排序的数据元素个 数太多,不能同时放置在内存,而需要将一部分数据 元素放置在内存,另一部分数据元素放置在外设上, 整个排序过程需要在内外存之间多次交换数据才能得 到排序的结果。本章只讨论常用的内部排序方法。 排序的基本方法内部排序主要有5种方法:插 入、交换、选择、归并和基数。 趟在排序过程中,基本动作执行一次。 西加大学数学与信息学院
ݙ䚼ᥦᑣϢ䚼ᥦᑣ ḍᥦᑣ䖛Ёᕙᥦᑣⱘ ᠔᭄᳝ܗ㋴ᰃ৺ܼ䚼㹿ᬒ㕂ݙᄬЁˈৃᇚᥦᑣᮍ ⊩ߚЎݙ䚼ᥦᑣ䚼ᥦᑣϸ㉏DŽݙ䚼ᥦᑣᰃᣛ ᥦᑣⱘᭈϾ䖛Ёˈᕙᥦᑣⱘ᠔᭄᳝ܗ㋴ܼ䚼㹿ᬒ 㕂ݙᄬЁ˗䚼ᥦᑣᰃᣛ⬅Ѣᕙᥦᑣⱘ᭄ܗ㋴Ͼ ᭄ˈϡ㛑ৠᯊᬒ㕂ݙᄬˈ㗠䳔㽕ᇚϔ䚼ߚ᭄ ܗ㋴ᬒ㕂ݙᄬˈϔ䚼ߚ᭄ܗ㋴ᬒ㕂䆒Ϟˈ ᭈϾᥦᑣ䖛䳔㽕ݙᄬП䯈Ѹᤶ᭄ᠡ㛑ᕫ ࠄᥦᑣⱘ㒧ᵰDŽᴀゴা䅼䆎ᐌ⫼ⱘݙ䚼ᥦᑣᮍ⊩DŽ ᥦᑣⱘᴀᮍ⊩ ݙ䚼ᥦᑣЏ㽕᳝5⾡ᮍ⊩˖ᦦ ܹǃѸᤶǃ䗝ᢽǃᔦᑊ᭄DŽ 䍳 ᥦᑣ䖛Ёˈᴀࡼᠻ㸠ϔDŽ
排序算法的效率评价排序算法的效率主要有两 点:一是在数据量规模一定的条件下,算法执行所消 耗的平均时间,对于排序操作,时间主要消耗在关键 字之间的比较和数据元素的移动上,因此我们可以认 为高效率的排序算法应该是尽可能少的比较次数和尽 可能少的数据元素移动次数;二是执行算法所需要的 辅助存储空间,辅助存储空间是指在数据量规模一定 的条件下,除了存放待排序数据元素占用的存储空间 之外,执行算法所需要的其他存储空间,理想的空间 效率是算法执行期间所需要的辅助空间与待排序的数 据量无关。 西加大学数学与信息学院
ᥦᑣㅫ⊩ⱘᬜ⥛ 䆘Ӌᥦᑣㅫ⊩ⱘᬜ⥛Џ㽕᳝ϸ ⚍˖ϔᰃ᭄䞣㾘ϔᅮⱘᴵӊϟˈㅫ⊩ᠻ㸠᠔⍜ 㗫ⱘᑇഛᯊ䯈ˈᇍѢᥦᑣ᪡ˈᯊ䯈Џ㽕⍜㗫݇䬂 ᄫП䯈ⱘ↨䕗᭄ܗ㋴ⱘ⿏ࡼϞˈℸ៥Ӏৃҹ䅸 Ў催ᬜ⥛ⱘᥦᑣㅫ⊩ᑨ䆹ᰃሑৃ㛑ᇥⱘ↨䕗᭄ሑ ৃ㛑ᇥⱘ᭄ܗ㋴⿏ࡼ᭄˗Ѡᰃᠻ㸠ㅫ⊩᠔䳔㽕ⱘ 䕙ࡽᄬټぎ䯈ˈ䕙ࡽᄬټぎ䯈ᰃᣛ᭄䞣㾘ϔᅮ ⱘᴵӊϟˈ䰸њᄬᬒᕙᥦᑣ᭄ܗ㋴ऴ⫼ⱘᄬټぎ䯈 Пˈᠻ㸠ㅫ⊩᠔䳔㽕ⱘ݊Ҫᄬټぎ䯈ˈ⧚ᛇⱘぎ䯈 ᬜ⥛ᰃㅫ⊩ᠻ㸠ᳳ䯈᠔䳔㽕ⱘ䕙ࡽぎ䯈Ϣᕙᥦᑣⱘ᭄ 䞣᮴݇DŽ