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

企业网站建设模板考研培训

企业网站建设模板,考研培训,中国桥梁建设网站,wordpress怎么爆出版本/*直接插入:把待排序序列分为有无序区和和无序区,使用无序区的数据一次插入倒有序区中,最终结果尾有序序列 1> 把数据分为有序区和无序区,默认第一个元素在有序区,剩下在无序区 2> 外层循环,循环无…

/*直接插入:把待排序序列分为有无序区和和无序区,使用无序区的数据一次插入倒有序区中,最终结果尾有序序列

1> 把数据分为有序区和无序区,默认第一个元素在有序区,剩下在无序区

2> 外层循环,循环无序区 的元素 for(i=1;i<n;i++)

3> 内层循环,倒序循环有序区 for(j=i-1;j>=0&&arr[j]>temp;j–)

4> 【升序】有序区元素如果大于插入的元素,后移arr[j+1]=arr[j]

5> 在j+1下标插入temp

时间复杂度:O(n^2)*/

#include<stdio.h>
int main(int argc, const char *argv[])
{int i,j;int arr[7]={4,2,3,1,5,6,7};int n=sizeof(arr)/sizeof(arr[0]);for(i=1;i<n;i++){int temp=arr[i];for(j=i-1;j>=0&&temp<arr[j];j--){arr[j+1]=arr[j];}arr[j+1]=temp;}for(int i=0;i<n;i++){printf("%d\t",arr[i]);}return 0;
}

//希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;

//随着增量逐渐减少,每组包含的越来越多,当增量减至 1 时,整个文件恰被分成一组

//最后都会走到直接插入的地步

//希尔排序时间复杂度低

//时间复杂度:O(n^1.5)

#include<stdio.h>
int main(int argc, const char *argv[])
{int arr[]={4,5,3,1,2,6,7,1};int n=sizeof(arr)/sizeof(arr[0]);int k=n/2;int j;while(k>=1){for(int i=k;i<n;i=i+k){int temp=arr[i];for(j=i-k;j>=0&&temp<arr[j];j=j-k){arr[j+k]=arr[j];}arr[j+k]=temp;}k=k/2;}for(int i=0;i<n;i++){printf("%d\t",arr[i]);}return 0;
}

// 快排n*logn

//、从待排序的序列中,任意选择一个元素作为基准

// 2、将其他元素与基准进行比较,分为大小两个部分

// 3、再对各个部分重新选定基准,并以上述两步重复进行,直到每个部分只剩一个元素为止

#include<stdio.h>
int oneSort(int arr[],int low,int high)
{int key=arr[low];while(low<high){while(low<high&&key<=arr[high]){high--;}arr[low]=arr[high];while(key>=arr[low]&&low<high){low++;}arr[high]=arr[low];}arr[low]=key;return low;
}
void Quick(int arr[],int low,int high)
{//	if(low==high){//		return;//	}
//	if(low>=high){
//		return;
//	}if(low<high){int mid=oneSort(arr,low,high);Quick(arr,low,mid-1);Quick(arr,mid+1,high);}
}int main(int argc, const char *argv[])
{int arr[]={1,2,4,9,6,3,2,1};int len=sizeof(arr)/sizeof(arr[0]);Quick(arr,0,len-1);for(int i;i<len;i++){printf("%d\t",arr[i]);}return 0;
}

二路归并:将待排序序列以中间值mid为界均分为左右两部分,左右两部分继续均分,直到序列中只有一个元## 素为止,逐级将左右两部分有序合并到一个新数组中**

#include<stdio.h>
void combin(int arr[],int low,int high,mid)
{int len=high-low+1;int temp[len];int i=low,j=mid+1,k=0;while(i<mid&&j<=high){if(arr[i]<=arr[j]){temp[k++]=arr[i++]}else{temp[k++]=arr[j++];}}while(i<=mid){temp[k++]=arr[i++];}while(j<=high){temp[k++]=arr[j++];}for(int i=0;i<len;i++){arr[low++]=temp[i++];}
}
void guibing(int arr[],int low,int high)
{if(low>=high){return;}int mid=(low+high)/2;mergersort(arr,low,mid);mergersort(arr,mid+1,high);combin(arr,low,high,mid);
}
int main(int argc, const char *argv[])
{int arr[]={1,2,3,5,9,6,2,1,3};int len=sizeof(arr)/sizeof(arr[0]);mergersort(arr,0,len-1);return 0;
}

查找:给定关键字,查找关键字是否存在

1> 顺序查找O(n)

1.1 存在性查找:查找数据是否存在

1.2 个数查找:查找关键字存在几次

2>折半查找:有顺序的顺序存储

注意:折半查找只能对有序序列进行查找

时间复杂度:O(n/2)**

//存在返回下标,失败返回-1
int halfSearch(int arr[],int low,int high,int key)
{int mid;while(low<=high){mid=(low+high)/2;if(key==arr[mid]){return mid;}else if(key>arr[mid]){low=mid+1;}else{high=mid-1;}}return -1;
}
int main(int argc, const char *argv[])
{/*
mid=(low+high)/287
12,32,45,65,  67,87,89,97
LOW      mid            high67   87    89  97low  mid      high    low=mid+1*/int arr[]={12,32,45,65,67,87,89,97};int len=sizeof(arr)/sizeof(arr[0]);int key;printf("输入查找的值:");scanf("%d",&key);int flag=halfSearch(arr,0,len-1,key);if(flag==-1)printf("%d不存在\n",key);elseprintf("在%d下表出现",flag);return 0;
}//存在返回下标,失败返回-1
http://www.yidumall.com/news/8467.html

相关文章:

  • 心悦免做卡领取网站做关键词推广
  • 张家港seo建站seo外包公司兴田德润
  • 东莞网站系统找哪里百度推广渠道
  • 平凉市政府门户网站软文发稿系统
  • b2b2c网站点击排名软件哪个好
  • 有哪些品牌做打底衫的网站百度搜索下载app
  • 做网站续费网络营销策略有哪几种
  • 贵阳做网站 优帮云seo引擎优化培训
  • 视觉传达设计网站百度快照怎么使用
  • 陕西省建设监理协会官方网站怎么下载有风险的软件
  • win主机伪静态规则 wordpressseo站内优化培训
  • 网站的项目建设周期南阳seo
  • 创新型的合肥网站建设网络营销措施有哪些
  • 做任务提现的网站seo超级外链工具
  • 个人网站制作网站整站优化工具
  • 做亚马逊联盟一定要有网站吗建网站的步骤
  • magento网站建设个人网站的制作
  • 1688批发厂家直销手机百度seo快速排名
  • wordpress采集mp4郑州seo价格
  • 怎么做关于易烊千玺的网站网站推广入口
  • 微信推广工具一键优化免费下载
  • 网站建设方案选公司怎么优化关键词
  • 嘉兴网站建设seo百度搜索历史记录
  • 精品课程网站设计代码石家庄限号
  • 建网站业务如何开展杭州上城区抖音seo有多好
  • 自己如何建立一个网站如何做好网上销售
  • 网站专题设计软件独立站seo怎么做
  • 西安有哪些网站windows优化大师可靠吗
  • 上海网站运营百度seo课程
  • 做艺术字的网站企业网站建设推广