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

个人网站建设公司百度在线

个人网站建设公司,百度在线,wordpress做图集,怎么做网站登录界面🔧 常用顺序表算法与操作实现(含O(n)划分、逆置、回文、双向冒泡、二分查找、数组左移等) 本文整理了顺序表常见操作的 C/C 实现,包括划分操作、逆置与回文判断、递归二分查找、双向冒泡排序及数组循环左移,适合初学者…

🔧 常用顺序表算法与操作实现(含O(n)划分、逆置、回文、双向冒泡、二分查找、数组左移等)

本文整理了顺序表常见操作的 C/C++ 实现,包括划分操作、逆置与回文判断、递归二分查找、双向冒泡排序及数组循环左移,适合初学者学习掌握线性表基础操作。

1️⃣ 顺序表结构定义

#include <stdio.h>
#include <stdbool.h>
#define MAX_SIZE 100
struct SeqList {int data[MAX_SIZE];int length;
};

2️⃣ O(n) 划分算法(小于 key 的在左,大于 key 的在右)

void spliceArray(struct SeqList *L, int key) {int left = 0;int right = L->length - 1;while (left <= right) {while (left <= right && L->data[left] < key)left++;while (left <= right && L->data[right] > key)right--;if (left <= right) {int tmp = L->data[left];L->data[left] = L->data[right];L->data[right] = tmp;left++;right--;}}
}

3️⃣ 数组逆置操作

void reverseArray(int ar[], int n) {int i = 0, j = n - 1;while (i < j) {int tmp = ar[i];ar[i] = ar[j];ar[j] = tmp;i++;j--;}
}

4️⃣ 回文判断(正着读和反着读一致)

bool isPalindrome(struct SeqList *L) {int i = 0, j = L->length - 1;while (i < j) {if (L->data[i] != L->data[j])return false;i++;j--;}return true;
}

5️⃣ 递归二分查找(需在有序表中)

int binarySearch(struct SeqList *L, int left, int right, int target) {if (left > right)return -1;int mid = (left + right) / 2;if (L->data[mid] == target)return mid;else if (target < L->data[mid])return binarySearch(L, left, mid - 1, target);elsereturn binarySearch(L, mid + 1, right, target);
}


6️⃣ 双向冒泡排序(鸡尾酒排序)

void doubleBubbleSort(struct SeqList *L) {int left = 0;int right = L->length - 1;bool is_swap;do {is_swap = false;// 从左向右冒泡最大值for (int i = left; i < right; i++) {if (L->data[i] > L->data[i + 1]) {int tmp = L->data[i];L->data[i] = L->data[i + 1];L->data[i + 1] = tmp;is_swap = true;}}if (!is_swap) break;right--;is_swap = false;// 从右向左冒泡最小值for (int j = right; j > left; j--) {if (L->data[j] < L->data[j - 1]) {int tmp = L->data[j];L->data[j] = L->data[j - 1];L->data[j - 1] = tmp;is_swap = true;}}left++;} while (is_swap);
}

7️⃣ 数组循环左移 p 位(高效方法)

void reverseSection(int ar[], int left, int right) {while (left < right) {int tmp = ar[left];ar[left] = ar[right];ar[right] = tmp;left++;right--;}
}void rotateLeft(int ar[], int n, int p) {if (n <= 1 || p <= 0 || p >= n)return;p = p % n;reverseSection(ar, 0, n - 1);       // 整体反转reverseSection(ar, 0, n - p - 1);   // 反转前 n-p 部分reverseSection(ar, n - p, n - 1);   // 反转后 p 部分
}

🔚 总结

本文涵盖的内容包括:

  • 顺序表划分(快排思想);

  • 数组逆置与回文判断;

  • 递归二分查找;

  • 双向冒泡排序;

  • 高效数组循环左移。

这些算法是常见的基本题型,也是数据结构与算法入门的基础内容,建议每个模块都亲手敲一遍。

http://www.hkea.cn/news/925952/

相关文章:

  • 建设网站行业云网络推广理实一体化软件
  • 如何用自己公司网站做邮箱关键字是什么意思
  • 古典网站建设欣赏马鞍山网站seo
  • 商城网站建设报价方案免费建网站软件下载
  • 中国做美国酒店的网站好竞价托管收费标准
  • 网站开发与设计静态网页源代码站长之家app下载
  • 松原做网站app运营推广是干什么
  • 做简单的网站链接2024新闻热点摘抄
  • 百度网站站长环球网疫情最新
  • 颍上做网站西安seo网站关键词优化
  • 有没有兼职做设计的网站吗知名网络软文推广平台
  • 数据百度做网站好用吗米拓建站
  • 网站维护运营怎么做搜索引擎优化通常要注意的问题有
  • 圆梦科技专业网站建设恶意点击软件有哪些
  • 如何做vip电影解析网站竞价恶意点击器
  • 开发简单小程序公司深圳网站优化哪家好
  • 网站开发劣势搜索引擎排名优化
  • 桂林网站优化公司企业网络营销顾问
  • 上海外贸出口代理公司排名搜索引擎优化的主要工作有
  • 一般做企业网站需要什么资料广告咨询
  • 广州网站建设兼职网站为什么要做seo
  • 中企动力官网 网站怎么在平台上做推广
  • 教育培训网站建设方案广告宣传费用一般多少
  • 计算机网站设计论文营销排名seo
  • 源码资源国内专业seo公司
  • 丽水微信网站建设报价免费精准客源
  • 广东建设工程中标公示网站google搜索引擎优化
  • 南宁老牌网站建设公司正版google下载
  • 网站做信用认证有必要吗微信朋友圈推广平台
  • 电子政务网站建设要求百度关键词规划师