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

做羊水亲子鉴定网站/电子商务网站建设

做羊水亲子鉴定网站,电子商务网站建设,WordPress微信一键登录,做平面设计素材的哪个网站好目录 1.冒泡法 2.冒泡法改进版 3.插入排序 4.希尔排序 5.选择排序 6.选择排序改进版 7.快速排序(利用递归) 7.归并排序(利用递归) 8.二分查找 1.冒泡法 时间复杂度&#xff1a;O(N^2) //冒泡 void popSort(int * arr,int num) {for(int i 0;i<num-1;i){for(int j…

目录

1.冒泡法

2.冒泡法改进版

3.插入排序

4.希尔排序

5.选择排序

6.选择排序改进版

7.快速排序(利用递归)

7.归并排序(利用递归)

8.二分查找


 

1.冒泡法

时间复杂度:O(N^2)

//冒泡
void popSort(int * arr,int num)
{for(int i =0;i<num-1;i++){for(int j = 0;j<num-1-i;j++){if(arr[j]>arr[j+1]){arr[j]^=arr[j+1];arr[j+1]^=arr[j];arr[j]^=arr[j+1];}}}
}

2.冒泡法改进版

(若上一次已经有序,那么就不用继续排序了,简称“序而不排”)

时间复杂度:O(N^2)

void popSort2(int * arr,int num)
{int flag;for(int i =0;i<num-1;i++){flag = 1;for(int j = 0;j<num-1-i;j++){if(arr[j]>arr[j+1]){arr[j]^=arr[j+1];arr[j+1]^=arr[j];arr[j]^=arr[j+1];flag = 0;}}if(flag ==1)break;}
}

 

3.插入排序

时间复杂度:O(N^2)

void insertSort(int * arr,int num)
{int i ,j ,t;for(i =1;i<num;i++){t = arr[i];for(j = i ;t<arr[j-1]&& j-1>-1    ;j-- ){arr[j] = arr[j-1];}arr[j] =t;}
}

 

4.希尔排序

时间复杂度:O(N^1.3)

void shellSort(int * arr,int num)
{int d = num/2;while(d>=1){int i,j,t;for(i = d;i<num;i++){t = arr[i];for(j = i; t<arr[j-d]&&j-d>-1;j-=d){arr[j] = arr[j-d];}arr[j] = t;}d =d /2;}
}

 

5.选择排序

时间复杂度:O(N^2)

void selectSort(int * arr,int num)
{for(int i = 0;i<num-1;i++){for(int j = i+1; j<num;j++){if(arr[j]<arr[i]){arr[j] ^= arr[i];arr[i] ^= arr[j];arr[j] ^= arr[i];}}}
}

 

6.选择排序改进版

(“比而不换”)

时间复杂度:O(N^2)

void selectSort2(int * arr,int num)
{int idx ;for(int i = 0;i<num-1;i++){idx = i;for(int j = i+1; j<num;j++){if(arr[idx]>arr[j]){idx = j;}}if(idx !=  i){arr[idx] ^= arr[i];arr[i] ^= arr[idx];arr[idx] ^= arr[i];}}
}

 

7.快速排序(利用递归)

时间复杂度:O(N*LogN)

void quickSort(int * arr,int left , int right)
{if(left<right){int lh = left, hh = right,t = arr[left];while(lh<hh){while(lh < hh && arr[hh] >= t)hh--;arr[lh] = arr[hh];while(lh<hh && arr[lh] <= t)lh++;arr[hh] = arr[lh];}arr[hh]  = t;quickSort(arr,left,hh-1);quickSort(arr,hh+1,right);}
}

 

7.归并排序(利用递归)

时间复杂度:O(N*LogN)

需要额外的空间,称为外排序

//(a和b数组输入时有序)-2个数组
void mergeArr1(int * a, int an,int * b, int bn,int * c, int cn)
{int i = 0, j = 0,k = 0;while(i !=  an && j != bn){if(a[i]<b[j]){c[k++] = a[i++];}else{c[k++] = b[j++];}}if(i == an)while(j != bn)c[k++] = b[j++];elsewhile(i != an)c[k++] = a[i++];
}//(a数组包含2个有序数组)-1个数组
void mergeArr2(int * a ,int * c, int start, int mid, int end)
{int i = start, j = mid+1, k = start;while(i !=  mid+1 && j != end+1){if(a[i] < a[j])c[k++] = a[i++];elsec[k++] = a[j++];}if(i == mid +1)while(j != end+1 )c[k++] = a[j++];elsewhile(i != mid +1)c[k++] = a[i++];while(start<=end){a[start] = c[start];start++;}
}//归并排序
void mergeSort(int*arr, int *tmp,int start, int end)
{if(start<end){int mid = (start +end)/2;mergeSort(arr,tmp,start,mid);mergeSort(arr,tmp,mid+1,end);mergeArr2(arr,tmp,start,mid,end);}
}

 

8.二分查找

//二分查找(迭代版本)
bool binSearch(int * a, int low, int high, int find)
{int mid ;while(low<=high){mid = (low+high)/2;if(a[mid] > find)high = mid-1;else if(a[mid]<find)low = mid +1;elsereturn true;}return false;
}//递归版本
bool binSearchTraverse(int * a, int low, int high, int find)
{int mid ;while(low<=high){mid = (low+high)/2;if(a[mid] > find)return binSearchTraverse(a,low,mid-1,find);else if(a[mid]<find)return binSearchTraverse(a,mid+1,high,find);elsereturn true;}return false;
}

 

http://www.jmfq.cn/news/5224681.html

相关文章:

  • 做淘宝一件代发的网站/百度还原
  • 谷歌推广公司哪家好/最好的优化公司
  • 网站更新维护 怎么做/百度统计网站
  • php网站开发实例教程源代码/廊坊seo推广公司
  • 什么是网站可信认证/百度推广登录官网
  • wordpress attachment.php/郑州网站建设方案优化
  • 百度用户服务中心/郑州外语网站建站优化
  • 美食网站开发方案/最近一周的国内新闻
  • 做安卓icon图标包下载网站/如何能查到百度搜索排名
  • 做钢材的都用什么网站/沧州网站建设推广
  • 网站建设开淘宝直通车/公众号关键词排名优化
  • 简单网站html模板下载/外贸谷歌推广怎么样
  • 企业案例网站生成/长春网站开发
  • 龙岗网站制作公司/seo作弊
  • 全省政府网站建设培训会/女教师遭网课入侵直播
  • 企业网站建设合同书模板/平台接广告在哪里接的
  • php按步骤做网站/360摄像头海澳門地区限制解除
  • 建设网站主机免费版/友情链接官网
  • 免费b2b网站推广列表/seo与sem的关系
  • 高新网站建设/优搜云seo
  • 广州市黄埔区建设局网站/郑州seo排名扣费
  • 怎么做域名网站备案/seo站外推广
  • 搭建建立网站/淘宝运营
  • 成都网站建设 公司/明天上海封控16个区
  • 重庆短视频行业/seo在线优化网站
  • 南宁网站定制公司/seo优化工作内容做什么
  • 集群注册的公司可以做网站备案/qq营销软件
  • css制作网页/标题关键词优化技巧
  • 做简历最好的网站/营销策略是什么
  • 佛山网站建设怎么做/seo软文代写