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

企业级网站建设电子商务网站建设的概要设计

企业级网站建设,电子商务网站建设的概要设计,小企业网站建设收费,政协门户网站建设文章目录 小程一言快速排序步骤详细解释具体步骤 举例总结 复杂度分析时间复杂度分析#xff1a;空间复杂度分析#xff1a;注意 应用场景总结 实际举例结果总结 代码实现结果解释 小程一言 这篇文章是在排序进行曲3.0之后的续讲#xff0c; 这篇文章主要是对快速排序进行细… 文章目录 小程一言快速排序步骤详细解释具体步骤 举例总结 复杂度分析时间复杂度分析空间复杂度分析注意 应用场景总结 实际举例结果总结 代码实现结果解释 小程一言 这篇文章是在排序进行曲3.0之后的续讲 这篇文章主要是对快速排序进行细致分析以及操作。 希望大家多多支持快速排序 基于分治的思想。它的基本思想是通过一趟排序将待排序的记录分割成独立的两部分其中一部分记录的关键字均比另一部分记录的关键字小然后再分别对这两部分记录进行排序从而达到整个序列有序的目的。步骤 详细解释 选择基准元素从待排序序列中选择一个元素作为基准元素。一般可以选择第一个元素、最后一个元素或者随 机选择一个元素作为基准元素。分割操作根据基准元素将待排序序列分割成两个子序列。一个子序列中的元素都小于基准元素另一个子 序列中的元素都大于基准元素。这个过程称为分割操作。递归排序对两个子序列分别进行快速排序直到子序列的长度为1或者0即子序列已经有序。合并结果将排序好的两个子序列合并即将左子序列、基准元素和右子序列依次拼接起来得到最终的有序 序列。具体步骤 选择基准元素假设选择第一个元素作为基准元素。设置两个指针一个指向序列的第一个元素左指针一个指向序列的最后一个元素右指针。左指针向右移动直到找到一个大于基准元素的元素。右指针向左移动直到找到一个小于基准元素的元素。如果左指针小于右指针则交换这两个元素。重复步骤3到步骤5直到左指针大于等于右指针。将基准元素与左指针所指的元素进行交换此时基准元素左边的元素都小于基准元素右边的元素都大于基准元素。对基准元素左边的子序列和右边的子序列分别进行递归排序。合并结果即将左子序列、基准元素和右子序列依次拼接起来得到最终的有序序列。快速排序的时间复杂度为O(nlogn)其中n为待排序序列的长度。举例 假设有一个待排序序列为[5, 3, 8, 2, 1, 9, 4, 7, 6]下面以此序列为例进行快速排序。选择基准元素选择第一个元素5作为基准元素。分割操作根据基准元素5将序列分割成两个子序列。比5小的元素放在左边比5大的元素放在右边。分割后的序列为[2, 1, 4, 3] 5 [9, 8, 7, 6]。递归排序对左右两个子序列进行递归排序。对左子序列[2, 1, 4, 3]进行快速排序选择基准元素2。分割后的序列为[1] 2 [4, 3]。对右子序列[9, 8, 7, 6]进行快速排序选择基准元素9。分割后的序列为[8, 7, 6] 9 []。继续对左子序列[4, 3]进行快速排序选择基准元素4。分割后的序列为[3] 4 []。对右子序列[8, 7, 6]进行快速排序选择基准元素8。分割后的序列为[6, 7] 8 []。继续对左子序列[3]进行快速排序选择基准元素3。分割后的序列为[] 3 []。对右子序列[6, 7]进行快速排序选择基准元素6。分割后的序列为[6] 7 []。合并结果将排序好的子序列合并。最终的有序序列为[1, 2, 3, 4, 5, 6, 7, 8, 9]。总结 通过以上步骤我们可以看到快速排序将原始序列不断分割成两个子序列并对子序列进行递归排序最终将所 有子序列合并成一个有序序列。复杂度分析 快速排序的时间复杂度为O(nlogn)其中n为待排序序列的长度。时间复杂度分析 在最好情况下每次分割操作都能将序列均匀地分成两部分此时快速排序的时间复杂度为O(nlogn)。在最坏情况下每次分割操作都将序列分成一个较小的子序列和一个较大的子序列此时快速排序的时间复杂度为O(n^2)。最坏情况发生在待排序序列已经有序或基本有序的情况下。平均情况下快速排序的时间复杂度仍然为O(nlogn)。这是因为在每一次分割操作中将序列分成两部分的概率大致相等每次分割操作的平均时间复杂度为O(n)。根据分治法的思想快速排序的平均时间复杂度可以近似地看作是每次分割操作的时间复杂度乘以递归的层数即O(nlogn)。空间复杂度分析 快速排序的空间复杂度为O(logn)主要是由于递归调用造成的栈空间使用。在最坏情况下递归的层数为n此时空间复杂度为O(n)。在平均情况下递归的层数为logn此时空间复杂度为O(logn)。注意 总结起来快速排序是一种高效的排序算法平均情况下的时间复杂度为O(nlogn)空间复杂度为O(logn)。但在最坏情况下时间复杂度可能达到O(n^2)需要额外的优化措施来避免最坏情况的发生。应用场景 排序算法快速排序是一种常用的排序算法被广泛应用于各种排序任务中。它的时间复杂度较低适用于处理大规模数据。数据库查询在数据库中经常需要对查询结果进行排序。快速排序可以在较短的时间内对查询结果进行排序提高查询效率。文件系统排序在文件系统中需要对文件进行排序以便更好地组织和管理文件。快速排序可以快速地对文件进行排序提高文件系统的性能。搜索引擎排序在搜索引擎中需要对搜索结果进行排序以便将相关度较高的结果排在前面。快速排序可以快速地对搜索结果进行排序提高搜索引擎的效率。数据分析在数据分析领域经常需要对大量数据进行排序和统计。快速排序可以快速地对数据进行排序为数据分析提供支持。总结 快速排序是一种高效的排序算法在大规模数据的排序和处理任务中具有广泛的应用场景。它的时间复杂度较低适用于各种需要排序的场景。实际举例 假设有一个学生信息表包含学生的姓名、学号和成绩。我们希望按照成绩对学生进行排序从高到低。快速排序可以很好地应用于这个场景。下面是一个使用快速排序对学生信息表按成绩排序的实际举例原始数据假设有以下学生信息表按成绩从高到低排列学生1姓名-张三学号-001成绩-90 学生2姓名-李四学号-002成绩-85 学生3姓名-王五学号-003成绩-95 学生4姓名-赵六学号-004成绩-80 选择基准元素选择一个基准元素可以是任意一个学生的成绩。假设选择学生3作为基准元素。分割操作将学生信息表分割成两个子序列一个序列包含所有成绩大于等于基准元素的学生另一个序列包含所有成绩小于基准元素的学生。子序列1学生3成绩95 子序列2学生1成绩90、学生2成绩85、学生4成绩80 递归排序对子序列1和子序列2分别进行递归排序重复上述步骤直到子序列只包含一个元素或为空。合并操作将排序后的子序列合并得到最终的有序序列。 结果 排序后的序列学生3成绩95、学生1成绩90、学生2成绩85、学生4成绩80 总结 通过快速排序我们成功将学生信息表按成绩从高到低排序。这个例子展示了快速排序在实际中的应用通过选择基准元素、分割操作、递归排序和合并操作可以高效地对大量数据进行排序。代码实现 public class QuickSort {public static void main(String[] args) {int[] arr {5, 2, 8, 9, 1, 3};quickSort(arr, 0, arr.length - 1);System.out.println(Arrays.toString(arr));}public static void quickSort(int[] arr, int low, int high) {if (low high) {int pivotIndex partition(arr, low, high);quickSort(arr, low, pivotIndex - 1);quickSort(arr, pivotIndex 1, high);}}public static int partition(int[] arr, int low, int high) {int pivot arr[high]; // 选择最后一个元素作为基准元素int i low - 1;for (int j low; j high; j) {if (arr[j] pivot) {i;swap(arr, i, j);}}swap(arr, i 1, high);return i 1;}public static void swap(int[] arr, int i, int j) {int temp arr[i];arr[i] arr[j];arr[j] temp;} } 结果 输出排序后的数组。运行结果为[1, 2, 3, 5, 8, 9]说明快速排序算法正确地对数组进行了排序。解释 在上面的代码中我们使用了递归的方式实现快速排序。首先定义了一个quickSort方法接受一个数组和数组的起始位置和结束位置作为参数。在quickSort方法中首先判断起始位置是否小于结束位置如果是则进行以下操作调用partition方法将数组分割成两个子序列并返回基准元素的索引。对子序列1起始位置到基准元素索引-1和子序列2基准元素索引1到结束位置分别递归调用quickSort方法继续进行排序。递归结束后数组将被排序。在partition方法中我们选择最后一个元素作为基准元素。然后使用两个指针i和j从起始位置开始遍历数组。如果遇到比基准元素小的元素将i指针向后移动一位并交换i和j指向的元素。遍历结束后将基准元素与i1位置的元素交换确保基准元素的位置正确。
http://www.w-s-a.com/news/412078/

相关文章:

  • 怎么做网站卖东西汽车网站排行榜前十名
  • 网站关键字没有排名只有单页面的网站怎么做seo
  • 网站流量盈利模式宝塔没有域名直接做网站怎么弄
  • 淡蓝色网站qq推广中心
  • 设计网站价格餐饮吸引客流的活动方案
  • 手机网站建设电话百度搜索量
  • 条件查询 php网站源码中国白云手机网站建设
  • 网上注册公司流程及材料班级优化大师免费下载电脑版
  • 应用网站如何做营销型网站的重要特点
  • 怎么样百度搜到自己的网站加强社区网站建设
  • 建设网站所需技术wordpress延时加载js
  • 网站建设沈阳搜云seo
  • 怎么申请免费的网站空间微信公众平台注册收费吗
  • 东营网站搭建最基本的网站设计
  • 网站建设技术的发展最近的国际新闻大事
  • 德州有名的网站建设公司网站如何做引流
  • 建设一个收入支出持平的网站网络推广计划书格式
  • 什么是网站黑链全球新冠疫苗接种率
  • 网站开发 chrome gimp网站不备案做seo没用
  • 织梦校园招生网站源码沪佳哪个好
  • 建设企业网站可信度软件产品如何做网站推广
  • 网站建设企业号助手贵阳景观设计公司
  • 网站开发第三方建设银行个人网站显示不了
  • 无锡兼职做网站郑州网站建设搜索优化
  • iis禁止通过ip访问网站品牌策划案例ppt
  • 电子商务网站建设实习seo黑帽优化
  • 如何做好网站建设销售闸北集团网站建设
  • 重庆装饰公司北京官网seo推广
  • 深圳网站设计灵点网络品牌网站充值接口
  • 建设书局 网站国内国际时事图片