冒泡排序|插入排序

冒泡排序|插入排序

标签(空格分隔): 数据结构和算法

冒泡排序

冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作

$array = [1, 2, 10, 11, 90, 8, 4, 88, 100];
$count = count($array);
for ($i = 0; $i < $count; $i++) {
    // 提前退出冒泡循环的标志位
    $flag = false;
    for ($j = $i; $j < $count; $j++) {
        if ($array[$j] > $array[$i]) {
            $tmp = $array[$i];
            $array[$i] = $array[$j];
            $array[$j] = $tmp;
            $flag = true;
        }
    }
    if (!$flag) break;
}

插入排序

首先,我们将数组中的数据分为两个区间,**已排序区间****未排序区间**。初始已排序区间只有一个元素,就是数组的第一个元素。*插入算法的核心思想是取未排序区间中的元素,在已排序区间中找到合适的插入位置将其插入,并保证已排序区间数据一直有序*。重复这个过程,直到未排序区间中元素为空,算法结束

$array = [1, 2, 10, 11, 90, 8, 4, 88, 100];
$count = count($array);
for ($i = 1; $i < $count; $i++) {
    $tmp = $array[$i];
    for ($j = $i - 1; $j>-1; $j--) {
        if ($array[$j] > $tmp) {
            $array[$j+1] = $array[$j];
        } else {
            $array[$j+1] = $tmp;
            break;
        }
    }
}

对比

posted @   TaylorSWMM  阅读(298)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示