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

网站的风格设计c 做游戏的网站教学

网站的风格设计,c 做游戏的网站教学,wordpress文档案例,本地门户网站系统冒泡排序 起泡排序#xff0c;别名“冒泡排序”#xff0c;该算法的核心思想是将无序表中的所有记录#xff0c;通过两两比较关键字#xff0c;得出升序序列或者降序序列。 算法步骤 比较相邻的元素。如果第一个元素大于第二个元素#xff0c;就交换它们。对每一对相邻…冒泡排序 起泡排序别名“冒泡排序”该算法的核心思想是将无序表中的所有记录通过两两比较关键字得出升序序列或者降序序列。 算法步骤 比较相邻的元素。如果第一个元素大于第二个元素就交换它们。对每一对相邻的元素作相同的操作从开始第一对到末尾的最后一对。针对所有的元素重复以上操作每次出来最后一个 算法理解 例如对无序表{4938659776132749}进行升序排序的具体实现过程如图 1 所示 图 1 第一次起泡 如图 1 所示是对无序表的第一次起泡排序最终将无序表中的最大值 97 找到并存储在表的最后一个位置。具体实现过程为 首先 49 和 38 比较由于 3849所以两者交换位置即从1到2的转变然后继续下标为 1 的同下标为 2 的进行比较由于 4965所以不移动位置3中 65 同 97 比较得知两者也不需要移动位置直至497 同 76 进行比较7697两者交换位置如5所示同样 97135、97276、97497所以经过一次冒泡排序最终在无序表中找到一个最大值 97第一次冒泡结束 由于 97 已经判断为最大值所以第二次冒泡排序时就需要找出除 97 之外的无序表中的最大值比较过程和第一次完全相同。 经过第二次冒泡最终找到了除 97 之外的又一个最大值 76比较过程完全一样这里不再描述。 通过一趟趟的比较一个个的“最大值”被找到并移动到相应位置直到检测到表中数据已经有序或者比较次数等同于表中含有记录的个数排序结束这就是起泡排序。 代码实现 #include iostream using namespace std;void swap(int *a, int *b){//交换a和b的位置int temp;temp *a;*a *b;*b temp; } int main() {int array[8] {49,38,65,97,76,13,27,49};//有多少记录就需要多少次冒泡当比较过程所有记录都按照升序排列时排序结束for (int i 0; i 8; i){int key0;//每次开始冒泡前初始化 key 值为 0//每次起泡从下标为 0 开始到 8-i 结束for (int j 0; j18-i; j){if (array[j] array[j1]){key1;swap(array[j], array[j1]);}}//如果 key 值为 0表明表中记录排序完成if (key0) {break;}}for (i 0; i 8; i){cout array[i] ;}return 0; }运行结果 13 27 38 49 49 65 76 97总结 使用起泡排序算法其时间复杂度同实际表中数据的无序程度有关。若表中记录本身为正序存放则整个排序过程只需进行 n-1n 为表中记录的个数次比较且不需要移动记录若表中记录为逆序存放最坏的情况则需要 n-1趟排序进行 n(n-1)/2 次比较和数据的移动。所以该算法的时间复杂度为O(n2)。 快速排序 快速排序本质上是可以说是冒泡排序基础上的递归分治法它也是分治算法在排序算法上的一种经典应用。 算法思想 快速排序是通过多次比较和交换来实现有序的。在一次排序中把将要排序的元素分成两个独立的子数组其中一个子数组的所有元素全大于另一个组数组的所有元素然后继续递归排序这两部分。 算法思想步骤 从序列中挑出一个元素称之为边界或者基准重新排序数列所有元素比基准值小的放在基准前面所有元素比基准值大的放在基准后面相同的数可以放在任意一边。这个操作结束后该基准就处于序列的中间位置这个操作称之为分区操作递归吧小于基准元素的组数组和大于基准元素的子数组排序 算法理解 代码实现 #include iostream using namespace std;#define MAX 9 //单个记录的结构体 typedef struct {int key; }SqNote; //记录表的结构体 typedef struct {SqNote r[MAX];int length; }SqList; //此方法中存储记录的数组中下标为 0 的位置时空着的不放任何记录记录从下标为 1 处开始依次存放 int Partition(SqList *L,int low,int high){L-r[0]L-r[low];int pivotkeyL-r[low].key;//直到两指针相遇程序结束while (lowhigh) {//high指针左移直至遇到比pivotkey值小的记录指针停止移动while (lowhigh L-r[high].keypivotkey) {high--;}//直接将high指向的小于支点的记录移动到low指针的位置。L-r[low]L-r[high];//low 指针右移直至遇到比pivotkey值大的记录指针停止移动while (lowhigh L-r[low].keypivotkey) {low;}//直接将low指向的大于支点的记录移动到high指针的位置L-r[high]L-r[low];}//将支点添加到准确的位置L-r[low]L-r[0];return low; } void QSort(SqList *L,int low,int high){if (lowhigh) {//找到支点的位置int pivotlocPartition(L, low, high);//对支点左侧的子表进行排序QSort(L, low, pivotloc-1);//对支点右侧的子表进行排序QSort(L, pivotloc1, high);} } void QuickSort(SqList *L){QSort(L, 1,L-length); } int main() {SqList *L new SqList;L-length8;L-r[1].key49;L-r[2].key38;L-r[3].key65;L-r[4].key97;L-r[5].key76;L-r[6].key13;L-r[7].key27;L-r[8].key49;QuickSort(L);for (int i1; iL-length; i) {cout L-r[i].key ;}return 0; }运行结果 13 27 38 49 49 65 76 97总结 快速排序算法的时间复杂度为O(nlogn)是所有时间复杂度相同的排序方法中性能最好的排序算法。
http://www.zqtcl.cn/news/926605/

相关文章:

  • 推推蛙网站建设云南网站开发费用
  • 网站没服务器行吗价格低廉怎么换个说法
  • 用wordpress编写网站完整网站开发视频教程
  • 电商型网站建设价格ppt制作网站
  • 东莞做个网站查询工商营业执照
  • 从网址怎么看网站的域名租用云服务器多少钱
  • 网站开发技术有个人网页首页设计图片
  • 一站式网站建设平台做电商网站需要做什么准备
  • 网站开发小程序快站模板
  • 江苏集团网站建设智慧养老网站开发
  • 外网网址可以做英语阅读的网站怎么原创视频网站
  • 宁波网站建设流程图自己做网站可以揽业务吗
  • 赤峰市建设网站东胜做网站
  • 有口碑的坪山网站建设微信扫一扫登录网站如何做
  • 自己建网站要花多少钱蓟县网站建设
  • 兖州中材建设有限公司网站wordpress免签约接口
  • 湖北网站seo设计成都疾控最新通告
  • 商丘网站建设推广公司配资网站建设多少钱
  • 手机网站怎么做SEO优化gzip压缩 wordpress
  • 上下框架 网站app营销的核心是什么
  • 网站开发哪里有培训wordpress 主题 网址导航
  • 深圳市宝安区怎么样百度禁止seo推广
  • 手机电商网站 模板常熟做网站优化
  • 免费的logo设计网站网页设计与制作dw
  • 线上调研问卷在哪个网站上做网页设计学生作业
  • 云南高端网站建设网页设计工作室选址依据
  • 免费的编程自学网站互联网公司网站建设ppt
  • 免费发帖的网站网站空间服务器费用
  • 商城类的网站一般怎么做做ps从哪个网站上下载图片大小
  • 怎么做网站链接支付免费推广网站搭建