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

网站服务器证书有问题专门发广告的app

网站服务器证书有问题,专门发广告的app,免费网站服务器安全软件下载,大学生个人网页制作原创不易,转载请注明出处。欢迎点赞收藏~ 快速排序是一种常用的排序算法,采用分治的策略来进行排序。它的基本思想是选取一个元素作为基准(通常是数组中的第一个元素),然后将数组分割成两部分,其中一部分的…

原创不易,转载请注明出处。欢迎点赞收藏~

快速排序是一种常用的排序算法,采用分治的策略来进行排序。它的基本思想是选取一个元素作为基准(通常是数组中的第一个元素),然后将数组分割成两部分,其中一部分的所有元素小于等于基准值,另一部分的所有元素大于基准值。然后对这两部分继续递归应用快速排序算法,直到整个数组有序。

算法步骤如下:

  1. 选择基准元素。
  2. 将数组分割成两部分,使得左半部分的元素都小于等于基准值,右半部分的元素都大于基准值。
  3. 对左右两部分分别应用快速排序算法(递归)。

快速排序的时间复杂度为O(nlogn)。这是因为每次划分操作会把待排序的序列分割成两个规模大致相等的子序列,划分操作的时间复杂度为O(n),递归调用的次数为O(logn)。所以总体的时间复杂度为O(nlogn)。

快速排序的空间复杂度为O(logn)。这是因为快速排序需要使用递归来进行划分操作,每一层递归都需要额外的空间来保存分割点的位置,递归调用的次数为O(logn),所以总体的空间复杂度为O(logn)。

需要注意的是,快速排序是一种原地排序算法,它不需要额外的辅助空间来进行排序。但是在实际实现中,为了提高排序的效率和减少递归深度,通常会使用一些优化策略,比如随机选择基准元素、三数取中法等。

#include <stdio.h>// 交换函数,用于交换数组中两个元素的位置
void swap(int *a, int *b)
{int temp = *a;*a = *b;*b = temp;
}// 分割函数,用于将数组分割成左右两部分
int partition(int arr[], int low, int high)
{int pivot = arr[low]; // 选择第一个元素作为基准值int i = low, j = high;while (i < j){// 从右往左找到第一个小于基准值的元素while (i < j && arr[j] >= pivot){j--;}// 从左往右找到第一个大于基准值的元素while (i < j && arr[i] <= pivot){i++;}// 交换这两个元素的位置if (i < j){swap(&arr[i], &arr[j]);}}// 将基准值放到最终的位置swap(&arr[low], &arr[i]);return i;
}// 快速排序函数
void quick_sort(int arr[], int low, int high)
{if (low < high){// 找到分割点int pivotIndex = partition(arr, low, high);// 对分割点左右两部分进行递归排序quick_sort(arr, low, pivotIndex - 1);quick_sort(arr, pivotIndex + 1, high);}
}// 测试
int main()
{int arr[] = {8, 4, 2, 9, 5, 1, 6, 3, 7};int n = sizeof(arr) / sizeof(arr[0]);printf("排序前的数组:\n");for (int i = 0; i < n; i++){printf("%d ", arr[i]);}quick_sort(arr, 0, n - 1);printf("\n排序后的数组:\n");for (int i = 0; i < n; i++){printf("%d ", arr[i]);}putchar('\n');return 0;
}

以上示例代码演示了如何使用快速排序算法对一个整数数组进行排序。首先定义了交换函数swap用于交换数组中两个元素的位置,然后定义了分割函数partition用于将数组分割成左右两部分。 最后定义了快速排序函数quick_sort来递归地进行分割和排序。

运行示例代码后,你可以看到以下输出:

http://www.yayakq.cn/news/624473/

相关文章:

  • 怎样建设自己的物流信息网站免费秒开小游戏
  • 学校网站建设营运预算host wordpress
  • 平凉网站设计怎么搭建个人博客
  • 网站建设开发费会计分录网站速度测速
  • 做软装什么网站可以网站开发一般用哪个浏览器
  • linux 网站服务器搭建安福相册网站怎么做的
  • 旅游网站网页设计图片360建筑网证书估价
  • 苏州网站建设哪家便宜自己开发游戏需要学什么
  • 天津企业网站模板建站哪家好普陀区网站制作
  • 梅河口市住房和城乡建设局网站公园网站建设方案 ppt模板
  • 触屏网站开发教程东莞专业做网站的公司
  • 申请制作网站wordpress头像class
  • 做网站网上接单电器网站建设策划书
  • 网站建设demo自己做传奇网站
  • 丽江市网站建设做网站的怎么认证微博
  • 网架制作厂优化是企业通过网站来做吗
  • 免费的黄冈网站有哪些平台可以用微信支付安装wordpress的目录改变了
  • 微网站和普通网站区别如何免费做网站推广
  • 市场上网站开发价格咖啡网站建设设计规划书
  • 卫浴外贸版网站案例wordpress 网站同步
  • 遵义住房和城乡建设局官方网站医院网站icp备案吗
  • 途牛网站建设的特点WordPress 视频cdn
  • 网站备案个人可以做吗软件开发的前景
  • 专业餐饮网站建设这个网站中有网名做会计的吗 了解一下
  • 织梦网站模板官网做ppt模板网站有哪些内容
  • 义乌网站公司怎么在京东做网站
  • 个人网站备案幕布网站搭建维护淄博
  • 宠物美容网站建设的目的免费国外服务器推荐
  • 移动端网站建设方案网站建设公司地址
  • 个人如何开网站深圳网站设计哪家好