冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
工具/原料
VirtualStudio2019
详细代码
1、#include<iostream>usingnamesp瞢铍库祢acestd;voids泠贾高框ort(char*name[],intn){char*tmp;inti,j;for(i=0;i<n-1;i++){for(j=1;j<n;j++){if(strcmp(name[j-1],name[j])>0){tmp=name[j];name[j]=name[j-1];name[j-1]=tmp;}}}}voidprint(char*name[],intn){inti=0;char*p;p=name[0];while(i<n){p=*(name+i++);cout<<p<<endl;}}intmain(){char*name[]={"mingri","soft","C++","mr"};intn=4;print(name,n);sort(name,n);cout<<"排序后:"<<endl;print(name,n);return0;}
代码解析
1、关键函数为sort,算法的原理如下:1.咯悝滩镞比较相邻的元素:strcmp(name[j-1],name[j]。2.如果第一个比第二个大,就交换他们两个:tmp=荏鱿胫协name[j];name[j]=name[j-1];name[j-1]=tmp;3.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个:嵌套for里的第一个for4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较:嵌套for里的第二个for