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

金华做网站报价百度广告怎么推广

金华做网站报价,百度广告怎么推广,主机做网站服务器怎么设置,适合做外链的网站冒泡排序 起泡排序#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.dnsts.com.cn/news/57855.html

相关文章:

  • 一个成功的网站要具备哪些爬虫做视频网站
  • 怎么在百度推广自己的网站宁波镇海区优秀全网seo优化
  • 宝安做网站的天津网站制作哪个好
  • 网站建站代理阜阳网站制作公司报价
  • 做qq代刷网站开发app软件需要多少费用
  • 兰州做网站哪家好筛网怎么做网站
  • 如何在自己建设的网站上发表文章海口网站建设价格
  • 网站插件代码下载衡阳网站建设公司地址
  • 枣庄网站设计在线教育 wordpress
  • 那里做直播网站职业规划ppt模板免费下载
  • 做网站的流程前端做什么山西网站建设软件
  • 创手机网站wordpress 5.0文章编辑教程
  • 坂田网站建设流程如何选择品牌网站建设
  • 河北廊坊建设局网站房地产交易网官网
  • 广东卫视你会怎么做网站品牌建设找晓哥
  • 不会写代码怎样做网站软件商店安装
  • 服装网站建设案例分析杭州协会网站建设
  • 专业房地产网站建设网站建设全攻略
  • 短期网站开发培训针对人群不同 网站做细分
  • 做结婚请柬网站有那些根据网站集约化建设要求
  • 台州北京网站建设长宁区网站设计建设
  • 深圳龙岗网站制作厦门手机网站建设公司排名
  • 如何将数据库导入网站手机wap网站用什么语言开发
  • 张家口万全区建设网站wordpress可以做网店吗
  • 建网站需要哪些费用域名到期如何续费
  • 连锁酒店的网站建设wordpress 恢复初始化
  • 旅游网站建设的可行性分析怎么样自己做百度网站
  • 网站模板前台后台免费招聘网站有哪些
  • 选择锦州网站建设宁波seo网络推广渠道介绍
  • 深圳网站关键词推广西安网站排名分析