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

小米网站建设项目书装潢设计图片

小米网站建设项目书,装潢设计图片,余姚建站公司,泉州手机网站建设公司哪家好交换排序就是通过比较交换实现排序。分冒泡排序和快速排序两种。 一、冒泡排序#xff1a; 1、简述 顾名思义就是大的就冒头#xff0c;换位置。 通过多次重复比较、交换相邻记录而实现排序#xff1b;每一趟的效果都是将当前键值最大的记录换到最后。 冒泡排序算法的原…交换排序就是通过比较交换实现排序。分冒泡排序和快速排序两种。 一、冒泡排序 1、简述 顾名思义就是大的就冒头换位置。 通过多次重复比较、交换相邻记录而实现排序每一趟的效果都是将当前键值最大的记录换到最后。 冒泡排序算法的原理如下  比较相邻的元素。如果第一个比第二个大就交换他们两个。 对每一对相邻元素做同样的工作从开始第一对到结尾的最后一对。在这一点最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤除了最后一个。 持续每次对越来越少的元素重复上面的步骤直到没有任何一对数字需要比较 2、复杂度 时间复杂度O(n²) 空间复杂度O(1) 3、稳定性稳定排序 4、例子 ​ #include iostream using namespace std; // 冒泡 int main() {int arr[8] {45, 38, 66, 90, 88, 10, 25, 45};int arrCount sizeof(arr) / sizeof(arr[0]);for (int i 0; i arrCount - 1; i) {for (int j 0; j arrCount - i - 1; j) {if (arr[j] arr[j1]) { // 对比两个值int tmp arr[j];// 交换位置arr[j] arr[j1];arr[j1] tmp;}}couti1次排序后;for (int i 0;i arrCount;i) {cout arr[i] ;}coutendl;}cout最后结果;for (int i 0;i arrCount;i) {cout arr[i] ;}return 0; } 输出结果 1次排序后38 45 66 88 10 25 45 90 2次排序后38 45 66 10 25 45 88 90 3次排序后38 45 10 25 45 66 88 90 4次排序后38 10 25 45 45 66 88 90 5次排序后10 25 38 45 45 66 88 90 6次排序后10 25 38 45 45 66 88 90 7次排序后10 25 38 45 45 66 88 90 最后结果10 25 38 45 45 66 88 90 二、快速排序 关键词基准值递归算法 1、简述 快速排序Quicksort计算机科学词汇适用领域PascalC等语言是对冒泡排序算法的一种改进。 快速排序算法流程如下  首先设定一个基准值通过该基准值将数组分成左右两部分。 将大于或等于基准值的数据集中到数组右边小于基准值的数据集中到数组的左边。此时左边部分中各元素都小于基准值而右边部分中各元素都大于或等于基准值 。然后左边和右边的数据可以独立排序。对于左侧的数组数据又可以取一个基准值将该部分数据分成左右两部分同样在左边放置较小值右边放置较大值。右侧的数组数据也可以做类似处理。 重复上述过程可以看出这是一个递归定义。通过递归将左侧部分排好序后再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后整个数组的排序也就完成了。 2、复杂度 时间复杂度O() 、最差O(n²) 注快速排序在表基本有序时最不利于其发挥效率即蜕化为冒泡排序,其时间复杂度为O(n²) 空间复杂度O() 3、稳定性不稳定排序 在交换的过程中相同的数值可能会被换到前面去所以是不稳定的。 4、例子 在经历第一趟之后我们将基准值左边和右边分别进行同样的操作。 left和right从原先的0和7更新为对应的数值 第一趟排序之后 [25 38 10] 45 [88 90 66 45] 分别对子序列排序 左边子序列排序 [25 38 10] left 0, right 2, flag 25 [10] 25 [38] 再对25左右两侧进行同样的排序方式得出左边子序列排序后的结果 10 25 38 右边子序列排序 [88 90 66 45] left 4, right 7, flag 88 [45 66] 88 [90] 再对88左右两侧进行同样的排序方式最后得到右边子序列排序后的顺序 45 66 88 90 合并起来就是 [10 25 38 45 45 66 88 90] 由于交换规则一致我们可以用递归来处理。 #include iostream using namespace std; /// 交换位置 void swapPosition(int arr[], int x, int y) {arr[x] arr[y]arr[x];arr[y] arr[x] - arr[y];arr[x] arr[x] - arr[y]; }void quickSort(int list[], int begin, int end) {// 将基准值flag定为列表第一个。int left begin, right end, flag list[begin];cout这趟排序的起始位置begin,结束位置end基准值flagendl;// 左右指针未碰头则反复做while (left right) {// 从右边开始// 右边没找到小于 flag 的右指针 继续往左移while (list[right] flag leftright) {--right;}// 右边找到比flag小的数据则将其送到左边并且将左边的指针往右移动if(left right) {// 交换位置swapPosition(list, left, right);left;}// 接着开始左边的循环// 左边没找到大于 flag 的左指针 继续往右移while (list[left] flag leftright) {left;}// 左边找到比flag大的数据则将其送到右边并且将右边的指针往左移动if(left right) {// 交换位置swapPosition(list, left, right);--right;}}cout结果;for (int i 0;i 8;i) {cout list[i] ;}coutendl;if (beginleft-1){cout开始左边的递归:endl;quickSort(list, begin, left-1);}if(right1 end){cout开始右边的递归:endl;quickSort(list, right1, end);} } int main() {int arr[8] {45, 38, 66, 90, 88, 10, 25, 45};int arrCount sizeof(arr) / sizeof(arr[0]);quickSort(arr, 0, arrCount - 1);cout最后结果;for (int i 0;i arrCount;i) {cout arr[i] ;}return 0; }输出结果 这趟排序的起始位置0,结束位置7基准值45 结果25 38 10 45 88 90 66 45 开始左边的递归: 这趟排序的起始位置0,结束位置2基准值25 结果10 25 38 45 88 90 66 45 开始右边的递归: 这趟排序的起始位置4,结束位置7基准值88 结果10 25 38 45 45 66 88 90 开始左边的递归: 这趟排序的起始位置4,结束位置5基准值45 结果10 25 38 45 45 66 88 90 最后结果10 25 38 45 45 66 88 90 参考 百度百科——冒泡排序https://baike.baidu.com/item/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F?fromModulelemma_search-box 百度百科——快速排序https://baike.baidu.com/item/%E5%BF%AB%E9%80%9F%E6%8E%92%E5%BA%8F%E7%AE%97%E6%B3%95/369842?frge_ala 生命不息学习不止若有不正确的地方欢迎指正。
http://www.w-s-a.com/news/283564/

相关文章:

  • 网站建设辶金手指排名十二wordpress 当数据库
  • 无锡手机网站建设服务苏州展厅设计企业
  • 无锡网站制作需要多少钱北京二次感染最新消息
  • 网站开发视频播放无画面杭州房产信息网官网
  • 网站开发 改进如何创建公众号平台
  • wordpress网站响应很慢只有asp网站代码可以重新编译吗
  • 哪个网站教做饭做的好wordpress热点文章
  • 可以做推广东西的网站重庆网站建设 重庆网站制作
  • 珠海网站建设培训学校wordpress去版权 合法
  • 建设食品商购网站学校网站设计实验报告
  • 建个网站多少钱沭阳奥体小区做网站的
  • 广州视频网站建站公司php网页设计作业代码
  • 成都公司网站设计如何制作网址最简单的方法
  • 温州 做网站福建住房城乡建设部网站
  • 网站自动化采集成都网站设计费用
  • 广东专业网站定制建设淘宝网站的人员组织结构
  • 网站改版seo无锡有多少家公司
  • h5美食制作网站模板下载wordpress大学百度云
  • 零陵做网站建立网站的公司平台
  • 某企业电子商务网站建设网站开发实验结论
  • 自己做的网站突然打不开杭州哪些做网站公司好
  • 株洲专业建设网站免费cms内容管理系统
  • 网上建立网站赚钱网站建设方案书纯文字
  • 专业网站设计哪家好it外包合同模板
  • 个人网站备案都需要什么中小企业服务网
  • 佛山网站建设哪个在公司网站投简历该怎么做
  • 八戒网站做推广老域名全部失效请拿笔记好
  • iss服务器网站建设甘肃建设厅网站执业注册中心
  • 域名访问网站 过程网站 免费 托管运营
  • 下单的网站建设教程wordpress php7.1