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

提升网站知名度曲靖seo

提升网站知名度,曲靖seo,wordpress 评论头像不显示不出来,建设网站的虚拟机配置快速排序是一种高效的排序算法,由C. A. R. Hoare在1960年提出,基本思想是分治法(Divide and Conquer)策略,通过递归将一个大问题分解为若干个较小的子问题,然后合并这些子问题的解来解决原始问题 快速排序…

快速排序是一种高效的排序算法,由C. A. R. Hoare在1960年提出,基本思想是分治法(Divide and Conquer)策略,通过递归将一个大问题分解为若干个较小的子问题,然后合并这些子问题的解来解决原始问题

快速排序的基本步骤如下

(1) 选择基准元素(Pivot): 从数组中选择一个元素作为基准元素(pivot)

通常有三种选择方法:

1. 选择第一个元素作为基准

2. 选择最后一个元素作为基准

3.选择中间位置的元素作为基准

(2)分区(Partitioning)操作: 重新排列数组,所有比基准元素小的元素摆放在基准前面,所有比基准元素大的元素摆在基准的后面,这个分区操作后,基准元素处于数组的中间位置

分区操作: 使用两个指针(通常称为i和j),从数组的两端开始,向中间移动, 当i指针找到比基准大的元素,j指针找到比基准小的元素时,交换这两个元素, 重复上述过程,直到两个指针相遇

#include <iostream>
using namespace std;
void Quicksort(int array[], int L, int R)
{
    if (L >= R) // 如果左边索引 L 大于等于右边索引 R,则说明子数组的大小为 1 或更小,不需要进一步排序。此时,函数直接返回,结束当前递归
        return;
    int left = L, right = R;
    int pivot = array[left];
    while (left < right)
    {
        while (left < right && array[right] >= pivot)
        {
            right--;
        }
        if (left < right)
        {
            array[left] = array[right];
            left++;
        }
        while (left < right && array[left] <= pivot)
        {
            left++;
        }
        if (left < right)
        {
            array[right] = array[left];
            right--;
        }
    }
    array[left] = pivot;
    Quicksort(array, L, left - 1);
    Quicksort(array, left + 1, R);
}

int main()
{
    int array[] = {6, 4, 8, 2, 1, 0};
    int n = sizeof(array) / sizeof(array[0]);  
    cout << "Original array: ";
    for (int i = 0; i < n; i++)  
        cout << array[i] << " ";
    cout << endl;
    Quicksort(array, 0, n - 1);  
    cout << "Sorted array:   ";
    for (int i = 0; i < n; i++)  
        cout << array[i] << " ";
    cout << endl;
    return 0;
}

参数说明:

array[]:待排序的整数数组

L:当前子数组的左边界索引 

R:当前子数组的右边界索引

函数逻辑:

递归终止条件:如果 L >= R,说明子数组的大小为 1 或更小,不需要排序,直接返回

初始化:将 left 和 right 分别初始化为 L 和 R,选择 array[left] 作为基准元素 pivot

分区操作:

从右向左扫描,找到第一个小于 pivot 的元素,将其放到 left 位置,并将 left 指针右移一位

从左向右扫描,找到第一个大于 pivot 的元素,将其放到 right 位置,并将 right 指针左移一位

重复上述两个步骤,直到 left 和 right 指针相遇

放置基准元素:将基准元素 pivot 放到 left 位置

递归排序:分别对基准元素左边和右边的子数组进行递归排序

http://www.ds6.com.cn/news/36590.html

相关文章:

  • 苏州产品设计公司沈阳seo团队
  • 电子商务网站建设名词解释张北网站seo
  • 大型购物网站建设网络营销推广方法
  • 可信赖的武汉网站建设南京seo优化
  • 福清福州网站建设百度品牌广告是什么
  • 建网站学什么软件电工培训
  • 嘉兴网站建设服务站长统计性宝app
  • 唐山网站建设400多少钱百度推广找谁做
  • 合肥网站建设哪家好三只松鼠口碑营销案例
  • axure rp可以做网站吗太原seo排名收费
  • 网站自动更新文章企业网络宣传推广方案
  • 供应网站建设bt磁力搜索引擎
  • 新闻网站备案的前置条件做引流推广的平台600
  • 东莞乐从网站建设太原做网站推广的公司
  • WordPress自定义json接口电商seo
  • 辽宁建设信息网站武汉好的seo优化网
  • 重庆做网站推广seo是怎么优化
  • 政府网站建设需要多少钱百度下载安装官方下载
  • 标签式网站内容管理今日军事新闻报道
  • 网站备案和不备案的区别百度小程序优化
  • 做poster网站济南网站优化
  • 专做韩国代购的网站提高工作效率心得体会
  • 中天建设第四网站关键词搜索优化
  • 重庆铜梁政府官网网站专业seo外包
  • 云虚拟机搭建wordpressseo快速排名软件价格
  • 互联网网站开发服务合同seo如何优化网站
  • 自已电脑做网站服务器网站seo什么意思
  • 设计主题网站优化系统软件
  • 清苑建设局网站网络营销软件推广
  • 什么网站建设搜索引擎优化内容包括哪些方面