排序
小磕学家
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
归并排序
归并:将两个或两个以上的有序序列合并成一个有序序列的过程。归并排序的主要操作是归并,其主要思想是:将若干有序序列逐步归并,最终得到一个有序序列。关键问题⑴:如何将两个有序序列合成一个有序序列?void Merge (int r[ ], int r1[ ], int s, int m, int t ){ i=s; j=m+1; k=s; while (i<=m ...原创 2019-12-29 13:11:45 · 160 阅读 · 0 评论 -
选择排序
选择排序的主要操作是选择,其主要思想是:每趟排序在当前待排序序列中选出关键码最小的记录,添加到有序序列中。简单选择排序基本思想:第i 趟在n-i+1(i=1,2,…,n-1)个记录中选取关键码最小的记录作为有序序列中的第i个记录。关键问题⑴:如何在无序区中选出关键码最小的记录?解决方法:设置一个整型变量index,用于记录在一趟比较的过程中关键码最小的记录位置。关键问题⑵:如何确定最小...原创 2019-12-29 13:08:03 · 154 阅读 · 0 评论 -
交换排序之快速排序
基本思想首先选一个轴值(即比较的基准),通过一趟排序将待排序记录分割成独立的两部分,前一部分记录的关键码均小于或等于轴值,后一部分记录的关键码均大于或等于轴值,然后分别对这两部分重复上述方法,直到整个序列有序。一选择轴值的方法:1.使用第一个记录的关键码;2.选取序列中间记录的关键码;3.比较序列中第一个记录、最后一个记录和中间记录的关键码,取关键码居中的作为轴值并调换到第一个记...原创 2019-12-29 12:59:16 · 182 阅读 · 0 评论 -
交换排序
起泡排序基本思想:两两比较相邻记录的关键码,如果反序则交换,直到没有反序的记录为止。关键问题⑴:如何记载一趟排序过程中交换的多个记录?解决方法:设变量exchange记载记录交换的位置,则一趟排序后,exchange记载的一定是这一趟排序中记录的最后一次交换的位置,且从此位置以后的所有记录均已经有序。算法描述:if (r[j]>r[j+1]){r[j]←→r[j+1];exc...原创 2019-12-29 12:56:17 · 146 阅读 · 0 评论 -
插入类排序
插入排序的主要操作是插入,其基本思想是:每次将一个待排序的记录按其关键码的大小插入到一个已经排好序的有序序列中,直到全部记录排好序为止。插入类排序方法有以下两种:直接插入排序void insertSort (int r[ ], int n){for (i=2; i<=n; i++) {r[0]=r[i]; j=i-1;while (r[0]<r[j]) ...原创 2019-12-29 12:52:58 · 246 阅读 · 0 评论 -
排序的基本概念
排序:给定一组记录的集合{r1, r2, ……, rn},其相应的关键码分别为{k1, k2, ……, kn},排序是将这些记录排列成顺序为{rs1, rs2, ……, rsn}的一个序列,使得相应的关键码满足ks1≤ks2≤……≤ksn(称为升序)或ks1≥ks2≥……≥ksn(称为降序)。正序:待排序序列中的记录已按关键码排好序。逆序(反序):待排序序列中记录的排列顺序与排好序的顺序正好相...原创 2019-12-29 12:48:45 · 594 阅读 · 0 评论
分享