假设含有n个记录的序列为{r1,r2,……,rn},其相应的关键字分别为{K1,K2,……,Kn},需确定1,2,3,……,n的一种排序p1,p2,p3,……,pn;使其相应的关键字满足kp1<=kp2<=kp3<=kp4<=……<=kpn非递减(或非递增)关系,即使得序列称为一个按关键字有序得序列{rp1,rp2,……,rpn},这样的操作就成为排序。
在排序问题中,通常将数据元素称为记录。
——显然我们输入得是一个记录集合,排序后输出的也是一个记录的集合。
——所以我们可以将排序看成是线性表的一种操作。
排序的依据是关键字之间的大小关系,那么对同一记录集合,针对不同的关键字进行排序,可以得到不同序列。
假设Ki = Kj(1<=i<=n,1<=j<=n,i != j),且在排序前的序列中ri领先于rj(即i ——如果排序后ri仍然领先于rj,则称所用的排序方法是稳定的; ——反之,若可能使得排序后的序列中rj领先ri,则称所用的排序方法是不稳定的。 ——时间性能 ——辅助空间 ——算法的复杂性 冒泡排序的基本思想:两两相邻记录的关键字,如果反序则交换,知道没有反序为止! 1、两两注意是相邻的两个元素的意思。 2、如果有n个元素需要比较n-1次,每一轮减少1次比较。 3、既然叫冒泡排序,那就是从下往上两两比较,所以看上去就跟泡泡往上冒一样。 直接插入排序算法(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。影响排序算法性能的几个要素
二、冒泡排序
冒泡排序的要点
三、直接选择排序
四、直接插入排序
北大图灵班学子斩获全球竞赛本科生第一名,攻关EDA“卡脖子”技术难题
matlab读取文件
JavaWeb Session会话
Java线程池
艾泊宇产品战略:华为手机品牌是如何从低端到高端的
表名注解/主键注解/字段注解/乐观锁注解[MyBatis-Plus系列] - 第486篇
Java面试题以及答案(三)多线程(必会)
持续集成部署-k8s-命令行工具:基础命令的使用
minio使用案例(Springboot)