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

企业网站的开发与应用甘肃网络科技有限公司

企业网站的开发与应用,甘肃网络科技有限公司,大型门户网站建设步骤,今天上海新闻综合新闻文章目录 排序算法小结排序算法C实现 排序算法小结 C语言中常用的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序。下面我们来一一介绍#xff1a; 冒泡排序#xff08;Bubble Sort#xff09;#xff1a;冒泡排序是通过比较相邻元素的大小进行排… 文章目录 排序算法小结排序算法C实现 排序算法小结 C语言中常用的排序算法包括冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序。下面我们来一一介绍 冒泡排序Bubble Sort冒泡排序是通过比较相邻元素的大小进行排序。如果当前元素比下一个元素大就交换它们两个的位置。重复这个过程直到最后最大的元素就会“冒”到数组的最后。然后再从头开始重复这个过程但是最后一个元素不再考虑。这个过程会一直进行直到没有元素需要交换也就是整个数组已经排序完成。冒泡排序的时间复杂度是O(n^2)。选择排序Selection Sort选择排序是每次从未排序的元素中选择最小或最大的元素放到未排序元素的开始位置直到所有元素都已排序。选择排序的时间复杂度也是O(n^2)。插入排序Insertion Sort插入排序的思路是将未排序的元素依次插入到已排序元素的适当位置。开始时第一个元素被认为已排序然后将第二个元素和它比较决定第二个元素在已排序元素中的位置然后再将第三个元素和已排序的元素比较依次进行。插入排序的时间复杂度是O(n^2)。快速排序Quick Sort快速排序是一种使用分治策略的排序算法。它的基本思想是选择一个基准元素将数组分为两部分一部分的元素都比基准元素小另一部分的元素都比基准元素大。然后对这两部分再分别进行快速排序。快速排序最坏的时间复杂度是O(n^2)但是在平均情况下快速排序的时间复杂度是O(n log n)。归并排序Merge Sort归并排序也是一种使用分治策略的排序算法。它的基本思想是将数组分为两半分别对它们进行归并排序然后将两个已排序的子数组合并成一个完整的已排序数组。归并排序的时间复杂度是O(n log n)。堆排序Heap Sort堆排序是基于二叉堆的一种排序方法。首先将数组构建成一个最大堆或最小堆然后依次移除堆顶的元素并调整堆以保持堆的性质直到堆为空此时数组已排序。堆排序的时间复杂度是O(n log n)。 总的来说这些排序算法各有各的优点和适用场景例如冒泡排序、选择排序和插入排序适用于小规模数据或者部分有序数据而快速排序、归并排序和堆排序通常适用于大规模数据排序。 排序算法C实现 #include stdio.h//冒泡排序 void bubbleSort(int arr[], int n) {int i, j;for (i 0; i n-1; i) {for (j 0; j n-i-1; j) {if (arr[j] arr[j1]) {int temp arr[j];arr[j] arr[j1];arr[j1] temp;}}} } //选择排序 void selectionSort(int arr[], int n) {int i, j, minIndex, temp;for (i 0; i n-1; i) {minIndex i;for (j i1; j n; j) if (arr[j] arr[minIndex]) {minIndex j;}temp arr[minIndex];arr[minIndex] arr[i];arr[i] temp;} } //插入排序 void insertionSort(int arr[], int n) {int i, key, j;for (i 1; i n; i) {key arr[i];j i - 1;while (j 0 arr[j] key) {arr[j 1] arr[j];j j - 1;}arr[j 1] key;} } //快速排序 int partition(int arr[], int low, int high) {int pivot arr[high];int i (low - 1);for (int j low; j high- 1; j) {if (arr[j] pivot) {i;swap(arr[i], arr[j]);}}swap(arr[i 1], arr[high]);return (i 1); } void quickSort(int arr[], int low, int high) {if (low high) {int pi partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi 1, high);} } //归并排序 void merge(int arr[], int l, int m, int r) {int i, j, k;int n1 m - l 1;int n2 r - m;int L[n1], R[n2];for (i 0; i n1; i) {L[i] arr[l i];}for (j 0; j n2; j) {R[j] arr[m 1 j];}i 0;j 0;k l;while (i n1 j n2) {if (L[i] R[j]) {arr[k] L[i];i;} else {arr[k] R[j];j;}k;}while (i n1) {arr[k] L[i];i;k;}while (j n2) {arr[k] R[j];j;k;} } void mergeSort(int arr[], int l, int r) {if (l r) {int m l(r-l)/2;mergeSort(arr, l, m);mergeSort(arr, m1, r);merge(arr, l, m, r);} } //堆排序 void heapify(int arr[], int n, int i) {int largest i;int l 2*i 1;int r 2*i 2;if (l n arr[l] arr[largest]) {largest l;}if (r n arr[r] arr[largest]) {largest r;}if (largest ! i) {swap(arr[i], arr[largest]);heapify(arr, n, largest);} } void heapSort(int arr[], int n) {for (int i n / 2 - 1; i 0; i--) {heapify(arr, n, i);}for (int in-1; i0; i--) {swap(arr[0], arr[i]);heapify(arr, i, 0);} }
http://www.hkea.cn/news/14568273/

相关文章:

  • 做网站 (公司)大专学电子商务有用吗
  • 地图网站 源码济南做网站那家好
  • 在线做视频的网站网页浏览器有哪些
  • 红酒商城网站建设制作公司网站怎么做
  • 网站开发众包泰安网站建设哪里找
  • wap网站模板下载沈阳网站制作定制策划
  • 个人网站怎么做引流做网站主要注意些什么问题
  • 建设网站费用成都网站建设q479185700棒
  • 郑州网站微信微博维护wordpress后台编辑
  • 石景山做网站百度图片搜索入口
  • 徐州网站营销网站的建设初步定位
  • 做兼职网站的主要参考文献餐饮业网站建设招标书
  • 网站工信部本案最近播放中文版在线观看电视剧
  • 网站网格布局怎样制作网站站点
  • 哪个网站可以做logo乔拓云微信小程序官网
  • 帮人做任务的网站网站开发代淘宝店铺装修
  • 成都网站建设 工资中小型网站建设案例
  • 建设网站资质查询网站网站是怎么做的
  • 帮客户做ppt什么的在哪个网站华为荣耀手机官网
  • 网站怎么样被百度收录wordpress手机域名
  • 网站建设哪家公司好一点如何上传自己做的网站
  • django做的网站安全吗河北建设人才网官网
  • 网站素材图片海南进出口公司排名
  • 网站设计建设濮阳网站建设 公司名字
  • 营销型公司网站有哪些偃师建设局网站
  • 安徽建设工程造价信息网站h5课件制作软件
  • 推荐的网站网站建设条件
  • 邯郸建设局网站南阳市住房和城市建设局网站
  • 办个网站需要多少钱手机网站设计建设服务
  • jsp做就业网站靖江网站开发