当前位置: 首页 > news >正文

婴儿衣服做的网站好链接买卖是什么意思

婴儿衣服做的网站好,链接买卖是什么意思,常德网站网站建设,郑州网站制作工具一、直接插入排序 (Insertion Sort) 基本思想 直接插入排序是一种简单直观的排序算法#xff0c;就像我们打扑克牌时的操作#xff1a;每次摸到一张牌#xff0c;都会把它插入到手中已排好序的牌的正确位置。通过这种方式#xff0c;逐步构建一个有序序列。 步骤 从第一…一、直接插入排序 (Insertion Sort) 基本思想 直接插入排序是一种简单直观的排序算法就像我们打扑克牌时的操作每次摸到一张牌都会把它插入到手中已排好序的牌的正确位置。通过这种方式逐步构建一个有序序列。 步骤 从第一个元素开始该元素可以认为已经被排序。 取出下一个元素在已经排序的元素序列中从后向前扫描。 如果该元素已排序大于新元素将该元素移到下一位置。 重复步骤3直到找到已排序的元素小于或等于新元素的位置。 将新元素插入到该位置后。 重复步骤2~5直到所有元素都被排序。 C语言代码示例 void InsertSort(int* a, int n) {for (int i 1; i n; i) { // 从第二个元素开始int temp a[i]; // 当前要插入的元素int j i - 1; // 从已排序部分的最后一个元素开始比较while (j 0 a[j] temp) {a[j 1] a[j]; // 如果当前元素大于新元素向后移动j--;}a[j 1] temp; // 找到插入位置后插入新元素} } 算法分析 时间复杂度 最好情况已排好序O(n)每个元素只需比较一次。 平均情况和最坏情况逆序O(n²)。 空间复杂度O(1)只需要一个临时变量。 稳定性稳定。相等元素的相对位置不会改变。 适用场景适用于小型数据集或基本有序的数据集效率较高。 二、冒泡排序 (Bubble Sort) 基本思想 冒泡排序是一种简单但效率较低的排序算法。它的名字来源于其工作方式通过重复遍历待排序的数列比较相邻的两个元素如果顺序错误就交换它们。每次遍历后最大的元素会像气泡一样“浮”到数列的末尾。 步骤 比较相邻的元素。如果第一个比第二个大就交换它们。 对每一对相邻元素做同样的操作从第一个元素到最后一个元素。经过这一轮后最大的元素会移动到数列的末尾。 重复上述步骤但每次减少比较的范围因为最后的元素已经排好序。 继续重复直到整个数列有序。 C语言代码示例 void bubbleSort(int arr[], int n) {for (int i 0; i n - 1; i) { // 遍历 n-1 次for (int j 0; j n - i - 1; j) { // 每次减少比较范围if (arr[j] arr[j 1]) { // 如果顺序错误交换int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}} } 算法分析 时间复杂度 最好情况已排好序O(n)因为只需要遍历一次。 平均情况和最坏情况逆序O(n²)。 空间复杂度O(1)只需要一个临时变量。 稳定性稳定。相等元素的相对位置不会改变。 适用场景由于效率较低通常只用于教学示例不适合实际应用。 三、希尔排序 (Shell Sort) 基本思想 希尔排序是插入排序的一种改进版本通过引入“增量”来分组排序减少数据的移动次数。它将待排序的元素分成若干组每组内的元素间距为某个增量然后对每组进行插入排序。随着增量逐渐减小最终增量为1时整个序列基本有序此时再进行一次直接插入排序即可完成。 步骤 选择一个增量序列例如 [n/2, n/4, ..., 1]。 按增量序列的个数进行多趟排序。 每趟排序中根据当前增量将序列分成若干子序列对每个子序列进行插入排序。 增量逐步减小直到增量为1完成排序。 C语言代码示例 void shellSort(int arr[], int n) {for (int gap n / 2; gap 0; gap / 2) { // 增量逐步减小for (int i gap; i n; i) { // 对每个子序列进行插入排序int temp arr[i];int j i;while (j gap arr[j - gap] temp) {arr[j] arr[j - gap];j - gap;}arr[j] temp;}} } 算法分析 时间复杂度 最好情况O(n log n)。 平均情况取决于增量序列通常在 O(n log² n) 到 O(n^(3/2)) 之间。 最坏情况O(n²)。 空间复杂度O(1)。 稳定性不稳定。由于分组排序可能会破坏元素的相对顺序。 适用场景适用于中等规模的数据集性能优于简单排序算法。 四、选择排序 (Selection Sort) 基本思想 选择排序是一种简单直观的排序算法。它的核心思想是每次从未排序的部分中找到最小或最大的元素放到已排序部分的末尾。通过逐步缩小未排序部分的范围最终完成排序。 步骤 在未排序的序列中找到最小元素。 将最小元素与未排序部分的第一个元素交换。 将已排序部分的边界向后移动一位。 重复上述步骤直到所有元素都被排序。 C语言代码示例 void selectionSort(int arr[], int n) {for (int i 0; i n - 1; i) { // 遍历 n-1 次int min_idx i; // 假设当前元素为最小值for (int j i 1; j n; j) { // 找到未排序部分的最小值if (arr[j] arr[min_idx]) {min_idx j;}}// 交换最小值与当前元素int temp arr[min_idx];arr[min_idx] arr[i];arr[i] temp;} } 算法分析 时间复杂度 最好、平均和最坏情况O(n²)。 空间复杂度O(1)。 稳定性不稳定。交换操作可能会破坏相等元素的相对顺序。 适用场景实现简单适合小型数据集或教学示例。 五、堆排序 (Heap Sort) 基本思想 堆排序是一种基于堆数据结构的排序算法。堆是一种特殊的完全二叉树分为大顶堆和小顶堆。堆排序利用堆的性质快速找到最大或最小元素并逐步构建有序序列。 步骤 将待排序的序列构建成一个大顶堆升序排序或小顶堆降序排序。 将堆顶元素最大值或最小值与末尾元素交换。 将剩余的元素重新调整为堆。 重复上述步骤直到所有元素都被排序。 C语言代码示例 void heapify(int arr[], int n, int i) {int largest i; // 假设当前节点为最大值int left 2 * i 1; // 左子节点int right 2 * i 2; // 右子节点if (left n arr[left] arr[largest]) {largest left; // 如果左子节点更大}if (right n arr[right] arr[largest]) {largest right; // 如果右子节点更大}if (largest ! i) {// 交换当前节点与最大值节点int temp arr[i];arr[i] arr[largest];arr[largest] temp;// 递归调整子树heapify(arr, n, largest);} }void heapSort(int arr[], int n) {// 构建大顶堆for (int i n / 2 - 1; i 0; i--) {heapify(arr, n, i);}// 逐步提取堆顶元素for (int i n - 1; i 0; i--) {// 交换堆顶元素与末尾元素int temp arr[0];arr[0] arr[i];arr[i] temp;// 调整剩余元素为堆heapify(arr, i, 0);} } 算法分析 时间复杂度 最好、平均和最坏情况O(n log n)。 空间复杂度O(1)。 稳定性不稳定。交换操作可能会破坏相等元素的相对顺序。 适用场景适合大数据量的排序性能稳定。
http://www.w-s-a.com/news/126073/

相关文章:

  • 郑州网站怎么推广贵阳市网站建设
  • 规范网站建设福州外贸网站建设推广
  • 平台电商网站开发传媒公司排行
  • 在哪给人做网站怎么样制作一个网页
  • 网站更改文章标题广西新闻
  • 专业做网站路桥寺院网站建设方案
  • 网站维护与优化教程广州做网站的网络公司排名
  • 网站做贷款许可证网站改版方案模板
  • 装饰公司怎么做网站嘉兴网站制作推广
  • 深圳兼职做网站涿州网站制作
  • 能找本地人做导游的网站app模板素材下载免费
  • 网站积分的作用网站开发需要看相关书籍
  • 建设银行总行网站alexa排名与什么有关系
  • 阿里云服务器发布网站收款网站怎么建设
  • 开发东莞网站制作公司做网站优化步骤
  • 网站版权信息的正确写法如何制作网络游戏
  • 郑州移动端网站建设如何在网上推广自己的公司
  • 企业建站源码系统破解网站后台
  • 石家庄网站开发报价企业注册资本代表什么
  • 招商平台公司宁波seo教程推广平台
  • 哪些网站可以做房产推广垂直门户网站都有什么
  • 不得不知道的网站金石项目管理软件
  • 怎么恢复网站数据库网站开发作业代做
  • 哪里建设网站最好用中国第五冶金建设公司医院网站
  • 雄安网建 网站建设订餐网站建设
  • 广州视频网站建站公司网站 体系
  • 青浦门户网站网站推广烟台公司电话
  • 湖北荆门建设银行网站wordpress购物模板下载
  • 学ui+wordpress模板北京推广优化
  • 建分类网站得花多少钱深圳设计网站开发