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

建设购物网站的方案网站色彩搭配表

建设购物网站的方案,网站色彩搭配表,网站开发制作云盘,浙江新手网络推广在 C 语言中#xff0c;可以通过嵌套循环和比较运算符来实现常见的排序算法#xff0c;比如冒泡排序、选择排序或插入排序 目录 基础算法#xff1a; 1.冒泡排序#xff08;Bubble Sort#xff09; 2.选择排序#xff08;Selection Sort#xff09; 3.插入排序…在 C 语言中可以通过嵌套循环和比较运算符来实现常见的排序算法比如冒泡排序、选择排序或插入排序 目录 基础算法 1.冒泡排序Bubble Sort 2.选择排序Selection Sort 3.插入排序Insertion Sort 高级算法 1. 快速排序Quick Sort 2. 归并排序Merge Sort 3. 堆排序Heap Sort 基础算法简单易实现冒泡排序、选择排序、插入排序 高级算法性能更优快速排序、归并排序、堆排序 基础算法 1. 冒泡排序Bubble Sort 冒泡排序是简单直观的排序方法通过多次比较相邻元素并交换位置来排序。 #include stdio.hvoid bubbleSort(int arr[], int size) {for (int i 0; i size - 1; i) {for (int j 0; j size - i - 1; j) {if (arr[j] arr[j 1]) { // 如果当前元素大于后一个元素则交换int temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}} }int main() {int arr[] {5, 2, 8, 3, 7};int size sizeof(arr) / sizeof(arr[0]);printf(排序前: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);bubbleSort(arr, size);printf(排序后: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);return 0; }备注说明这里在内循环jsize-i-1的目的是因为每进行一次外层循环数组末尾的一个最大元素会被排序好因此后续的内层循环会减少比较的次数。 2.选择排序Selection Sort 选择排序通过在未排序部分找到最小最大元素然后将其与未排序部分的第一个元素交换位置。 #include stdio.hvoid selectionSort(int arr[], int size) {for (int i 0; i size - 1; i) {int minIndex i; // 假设当前元素是最小值for (int j i 1; j size; j) {if (arr[j] arr[minIndex]) {minIndex j; // 找到更小的元素}}// 交换最小值和当前位置int temp arr[i];arr[i] arr[minIndex];arr[minIndex] temp;} }int main() {int arr[] {5, 2, 8, 3, 7};int size sizeof(arr) / sizeof(arr[0]);printf(排序前: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);selectionSort(arr, size);printf(排序后: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);return 0; }备注说明 3.插入排序Insertion Sort 插入排序通过逐步将未排序部分的元素插入到已排序部分的正确位置来排序。 #include stdio.hvoid insertionSort(int arr[], int size) {for (int i 1; i size; i) {int key arr[i]; // 当前要插入的元素int j i - 1;// 将已排序部分的元素向右移动直到找到正确的位置while (j 0 arr[j] key) {arr[j 1] arr[j];j--;}arr[j 1] key;} }int main() {int arr[] {5, 2, 8, 3, 7};int size sizeof(arr) / sizeof(arr[0]);printf(排序前: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);insertionSort(arr, size);printf(排序后: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);return 0; }高级算法 1. 快速排序Quick Sort 快速排序是一种分治算法通过选定一个“基准”pivot将数组分为两部分递归排序子数组。 #include stdio.hvoid quickSort(int arr[], int low, int high) {if (low high) {int pivot arr[low]; // 基准int i low, j high;while (i j) {while (i j arr[j] pivot) j--; // 从右向左找小于基准的if (i j) arr[i] arr[j]; // 放到左边while (i j arr[i] pivot) i; // 从左向右找大于基准的if (i j) arr[j--] arr[i]; // 放到右边}arr[i] pivot; // 基准放在最终位置quickSort(arr, low, i - 1); // 排序左边部分quickSort(arr, i 1, high); // 排序右边部分} }int main() {int arr[] {5, 2, 8, 3, 7};int size sizeof(arr) / sizeof(arr[0]);printf(排序前: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);quickSort(arr, 0, size - 1);printf(排序后: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);return 0; }2. 归并排序Merge Sort 归并排序也是一种分治算法分为两部分分别排序再合并为有序数组。 #include stdio.hvoid merge(int arr[], int left, int mid, int right) {int n1 mid - left 1;int n2 right - mid;int L[n1], R[n2];// 将数据复制到临时数组for (int i 0; i n1; i) L[i] arr[left i];for (int i 0; i n2; i) R[i] arr[mid 1 i];int i 0, j 0, k left;while (i n1 j n2) {if (L[i] R[j]) {arr[k] L[i];} else {arr[k] R[j];}}while (i n1) arr[k] L[i];while (j n2) arr[k] R[j]; }void mergeSort(int arr[], int left, int right) {if (left right) {int mid left (right - left) / 2;mergeSort(arr, left, mid);mergeSort(arr, mid 1, right);merge(arr, left, mid, right);} }int main() {int arr[] {5, 2, 8, 3, 7};int size sizeof(arr) / sizeof(arr[0]);printf(排序前: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);mergeSort(arr, 0, size - 1);printf(排序后: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);return 0; }3. 堆排序Heap Sort 堆排序通过构造一个堆最大堆或最小堆来实现排序。 #include stdio.hvoid heapify(int arr[], int size, int root) {int largest root;int left 2 * root 1;int right 2 * root 2;if (left size arr[left] arr[largest]) largest left;if (right size arr[right] arr[largest]) largest right;if (largest ! root) {int temp arr[root];arr[root] arr[largest];arr[largest] temp;heapify(arr, size, largest);} }void heapSort(int arr[], int size) {// 构建最大堆for (int i size / 2 - 1; i 0; i--) {heapify(arr, size, i);}// 逐步将堆顶元素交换到数组末尾并调整堆for (int i size - 1; i 0; i--) {int temp arr[0];arr[0] arr[i];arr[i] temp;heapify(arr, i, 0);} }int main() {int arr[] {5, 2, 8, 3, 7};int size sizeof(arr) / sizeof(arr[0]);printf(排序前: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);heapSort(arr, size);printf(排序后: );for (int i 0; i size; i) {printf(%d , arr[i]);}printf(\n);return 0; }
http://www.hkea.cn/news/14273697/

相关文章:

  • 益阳网站建设公司有哪些手机网站演示
  • 外贸网站建设怎么选网站用什么东西做
  • 移动网站建设优势珠海工商网上登记平台
  • 专业做礼品团购的网站网页设计素材图片免费
  • 网站建设模板怎么做网站的开发费用吗
  • asp.net mvc网站开发之美下列不能反应企业网站建立网络
  • 网站建设费用请示大连企业制作网站
  • 在福州做网站网页制作的教程视频
  • 移动端网站开发前端模板wordpress模板添加主题
  • 江西企业网站建设价格app软件开发官网
  • 猪八戒里面做网站骗子很多百度爱采购推广一个月多少钱
  • 购物网站排名2016肇庆制作网络公司
  • 潍坊网站制作公司一个完整网站开发需要什么技术
  • 个人做电影网站赚钱吗怎么推广我的网站吗
  • 做网站手机端不做PC可以吗王烨霖
  • 学校内部网站开发价格wordpress外汇行情
  • 国外优秀ps网站学习编程
  • 力洋网站建设公司网站专题页面案例
  • 在相亲网站认识了一个做红酒生意的吃什么补肾壮阳最快速
  • 厦门城乡住房建设厅网站首页wordpress 精确搜索
  • 从美洲开始做皇帝免费阅读网站想建设个网站卖东西
  • 北京品牌网站设计宁波网络公司电话
  • 网站页眉尺寸大理州住房和城乡建设部网站
  • 跨境外贸平台有哪些微信seo
  • 顺德网站制作案例如何百度快照查询入口
  • 做视频网站重庆景点排名前十
  • 商务网站开发的的基本流程网站开发英文论文资料
  • 有哪些制作网站的公司在网上怎么建立自己的网站
  • 有保障的无锡网站制作建筑施工企业安全管理人员考试
  • 网站建设四端一体学做旗袍衣服的网站