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

php做网站登陆验证厦门海投工程建设有限公司网站

php做网站登陆验证,厦门海投工程建设有限公司网站,桂平做网站公司,新品发布会致辞稿前言 排序是计算机科学中的基本问题之一#xff0c;也是数据处理的核心步骤。从最简单的个人项目到复杂的工业级应用#xff0c;排序都扮演着关键角色。本文将介绍四种常见的排序算法#xff1a;冒泡排序、插入排序、快速排序和堆排序#xff0c;旨在帮助算法初学者理解这些…前言 排序是计算机科学中的基本问题之一也是数据处理的核心步骤。从最简单的个人项目到复杂的工业级应用排序都扮演着关键角色。本文将介绍四种常见的排序算法冒泡排序、插入排序、快速排序和堆排序旨在帮助算法初学者理解这些基本概念。 快速理解 冒泡排序 冒泡排序是最简单的排序算法之一它重复遍历要排序的列表比较相邻的元素并将顺序错误的元素交换位置。这个过程重复进行直到没有需要交换的元素这时列表就排序完成了。 算法步骤 从列表的第一个元素开始比较相邻的元素。如果第一个元素比第二个大就交换它们的位置。对每一对相邻元素做同样的工作从开始第一对到结尾的最后一对。这步做完后最后的元素会是最大的数。针对所有的元素重复以上的步骤除了最后一个。持续每次对越来越少的元素重复上面的步骤直到没有任何一对数字需要比较。 尽管冒泡排序很直观但它不适合处理大数据集。它的平均和最坏情况时间复杂度均为O(n²)其中n是列表的元素数量。 插入排序 插入排序的工作方式类似于我们排序扑克牌。在每次迭代中插入排序从数据集中取出未排序部分的第一个元素然后逐步将该元素移动到已排序部分的正确位置。 算法步骤 从第一个元素开始该元素被认为已经排序。取出下一个元素在已经排序的元素序列中从后向前扫描。如果该元素已排序大于新元素将该元素移到下一位置。重复步骤3直到找到已排序的元素小于或者等于新元素的位置。将新元素插入到该位置后。重复步骤2~5。 对于较小的数据集插入排序效果不错平均和最坏情况的时间复杂度同样为O(n²)但它在列表基本有序的情况下表现得尤为优秀。 快速排序 快速排序是一种分而治之的算法以递归方式将列表分为较小的子列表。快速排序包含了两个主要的步骤首先选择一个“基准”项其次分区操作将比基准小的项移到基准前面比基准大的项移到后面。 算法步骤 选择一个基准值。分区过程中比基准值小的移动到基准值的左边比基准值大的移动到右边。对左侧和右侧的两个子集不包括基准值重复步骤1和2。重复步骤3直到所有子集只剩下单个元素。 快速排序在平均和最佳情况下的时间复杂度为O(n log n)但在最坏情况下会退化为O(n²)。不过在大多数情况下它是非常高效的。 堆排序 堆排序是基于二叉堆数据结构的一种比较不同的排序方法。它利用了最大堆或最小堆的性质来排序元素。 算法步骤 构建一个最大堆或最小堆。将最大或最小项抽出并放置到集合的尾端。重新调整剩余项使其保持最大或最小堆的性质。重复步骤2和3直到堆中只剩下一个元素。 堆排序的时间复杂度在最佳、平均和最坏情况下都是O(n log n)并且它不需要额外的存储空间这使它成为数据集较大时的一个不错的选择。 总结 学习这些排序算法为初学者提供了一种强有力的方式来理解算法分析的基本原则。虽然冒泡排序和插入排序由于其高时间复杂度在大数据集上效率较低但它们简单且易于实现。快速排序因为平均性能好而被广泛使用尽管它在最坏情况下的性能不佳。堆排序则提供了一种在所有情况下都很稳定的性能的排序方法。了解各个排序算法的优势和局限性将帮助你选择最适合你当前情况的算法。 附算法题示例 1. 冒泡排序 题目 给定一个整数数组使用冒泡排序算法对其进行排序。 Python 示例答案 def bubble_sort(arr):n len(arr)for i in range(n):for j in range(0, n-i-1):if arr[j] arr[j1]:arr[j], arr[j1] arr[j1], arr[j]return arrarr [64, 34, 25, 12, 22, 11, 90] bubble_sort(arr) print(Sorted array is:, arr)C# 示例答案 using System;public class BubbleSort {static void bubbleSort(int[] arr) {int n arr.Length;for (int i 0; i n - 1; i)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;}}public static void Main() {int[] arr {64, 34, 25, 12, 22, 11, 90};bubbleSort(arr);Console.WriteLine(Sorted array:);foreach (int i in arr)Console.Write(i );} }2. 插入排序 题目 给定一个整数数组使用插入排序算法对其进行排序。 Python 示例答案 def insertion_sort(arr):for i in range(1, len(arr)):key arr[i]j i-1while j 0 and key arr[j]:arr[j 1] arr[j]j - 1arr[j 1] keyreturn arrarr [12, 11, 13, 5, 6] insertion_sort(arr) print(Sorted array is:, arr)C# 示例答案 using System;public class InsertionSort {static void insertionSort(int[] arr) {int n arr.Length;for (int i 1; i n; i) {int key arr[i];int j i - 1;while (j 0 arr[j] key) {arr[j 1] arr[j];j j - 1;}arr[j 1] key;}}public static void Main() {int[] arr {12, 11, 13, 5, 6};insertionSort(arr);Console.WriteLine(Sorted array:);foreach (int i in arr)Console.Write(i );} }3. 快速排序 题目 给定一个整数数组使用快速排序算法对其进行排序。 Python 示例答案 def quick_sort(arr):if len(arr) 1:return arrpivot arr[len(arr) // 2]left [x for x in arr if x pivot]middle [x for x in arr if x pivot]right [x for x in arr if x pivot]return quick_sort(left) middle quick_sort(right)arr [3, 6, 8, 10, 1, 2, 1] print(Sorted array is:, quick_sort(arr))C# 示例答案 using System; using System.Linq;public class QuickSort {public static void Main() {int[] arr {3, 6, 8, 10, 1, 2, 1};var sortedArray QuickSortArray(arr);Console.WriteLine(Sorted array:);foreach (int i in sortedArray)Console.Write(i );}private static int[] QuickSortArray(int[] arr) {if (arr.Length 1)return arr;var pivot arr[arr.Length / 2];var left arr.Where(x x pivot).ToArray();var middle arr.Where(x x pivot).ToArray();var right arr.Where(x x pivot).ToArray();return QuickSortArray(left).Concat(middle).Concat(QuickSortArray(right)).ToArray();} }4. 堆排序 题目 给定一个整数数组使用堆排序算法对其进行排序。 Python 示例答案 def heapify(arr, n, i):largest il 2 * i 1r 2 * i 2if l n and arr[i] arr[l]:largest lif r n and arr[largest] arr[r]:largest rif largest ! i:arr[i], arr[largest] arr[largest], arr[i]heapify(arr, n, largest)def heap_sort(arr):n len(arr)for i in range(n // 2 - 1, -1, -1):heapify(arr, n, i)for i in range(n-1, 0, -1):arr[i], arr[0] arr[0], arr[i]heapify(arr, i, 0)return arrarr [12, 11, 13, 5, 6, 7] heap_sort(arr) print(Sorted array is:, arr)C# 示例答案 using System;public class HeapSort {public static void Main() {int[] arr {12, 11, 13, 5, 6, 7};heapSort(arr);Console.WriteLine(Sorted array:);foreach (int i in arr)Console.Write(i );}static void heapSort(int[] arr) {int n arr.Length;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);}}static 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 swap arr[i];arr[i] arr[largest];arr[largest] swap;heapify(arr, n, largest);}} }
http://www.pierceye.com/news/147715/

相关文章:

  • 经营虚拟网站策划书福建设备公司网站
  • 网站建设费用明细报价wordpress暗箱
  • 南宁网站建公司电话福州建站服务
  • 有没有什么推荐的网站用 php网站建设打出一首古诗
  • 品牌网站建设浩森宇特wordpress 首页 缩略图
  • 一个主机可以做几个网站域名织梦cms网站更新
  • 知名网站有哪些网站开发是什么环境
  • 哪些网站是用wordpress开发一款视频app多少钱
  • 济南网站定制制作建设项目 环评申报网站
  • 无锡响应式网站设计wordpress站群管理系统
  • 主题网站策划设计书网络营销是什么的一项活动
  • python+网站开发实例教程免费做视频网站
  • 免费建站自己的网址美化网站公司
  • 做购物网站哪个cms好用网络规划与设计就业前景
  • wordpress仿站工具网站建设jw100
  • 网站推广过程叙述关键词歌词
  • vip影视网站如何做appwordpress centos查看目录
  • 网站怎么套模板山西seo博客
  • 好看的手机网站推荐新建的网站 找不到
  • 网站站内搜索怎么做seo搜索优化
  • 建设部网站 测绘规章pc网站手机网站
  • 建网站如何赚钱vs哪个版本做网站好
  • 新衡阳网站游戏软件开发公司简介
  • 湖南基础建设投资集团网站做体育最好的网站
  • 上海php网站开发公司wordpress 邮件认证
  • 教做香肠的网站张家港专业网站建设
  • 园林建设网站营销型网站的建站步骤是什么意思
  • 招聘求职网站html模板正规的创业商机网
  • 预付网站建设费会计处理哪里建网站好
  • 做免费网站艺术学院网站建设管理办法