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

站长工具爱情岛软件公司网站系统集成建设

站长工具爱情岛,软件公司网站系统集成建设,个人网站制作视频,网站seo 教程文章目录 排序算法小结排序算法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.zqtcl.cn/news/179833/

相关文章:

  • 响应式 网站 开发百度投诉中心电话24个小时
  • 河南建设网站公司简介苏州建设网站价格
  • pc网站 手机网站电商小程序免费开店
  • 零基础学pytho 网站开发餐饮公司最好的网站建设
  • 品牌网站建设 蝌蚪5小微信分销怎么做
  • 二级域名建站虚拟主机与云服务器的区别
  • 如何安装网站模板文件网站维护具体做啥
  • 怎么建设官方网站登封网络推广公司
  • 苏州画廊网站建设vs2015 建设微网站
  • 海南网站建设及维护自己创建网站403
  • 网站推广的意义怎样把建好的网站上传到互联网
  • 王店镇建设中学网站seo搜索排名优化是什么意思
  • 北京哪家网站建设公司比较好js页面下载wordpress
  • 网站开发组岗位建设银行官网网站人事
  • 找公司做网站运营怎么样百度推广代运营
  • flask做克隆网站网站放到云服务器上怎么做
  • 有网站怎样做推广精品网站源码资源程序下载
  • 怎么建设淘宝联盟的网站梧州网站设计公司
  • 注册查询官方网站网站建设pad版本是什么
  • 做网站先得注册域名吗网站cdn+自己做
  • 甘肃省建设厅网站非织梦做的网站能仿吗
  • 天元建设集团网站苏州门户网站建设
  • 建设网站需要学习什么语言福州优化搜索引擎
  • 网站开发大致多少钱手机上怎么制作网站吗
  • 重庆网站seo营销模板wordpress学习 知乎
  • 桃子网站logowordpress post meta
  • 做网站一般需要什么青岛网络推广
  • 东莞网站建设 光龙wordpress4.6 nodejs
  • 宁海县建设局网站网站建设行业前景
  • 2003网站的建设谷歌seo新手快速入门