学习是一个周而复始,不断累积,不断记录,不断总结的过程。写东西也不能偷懒呀!。冒泡可以说是广大新手入门,必学的算法之一。无论是c c++ java 新手入门老师都会讲到这个。尽管这个效率底下,但是作为学习来说,还是一份不错的新手算法参考资料。
算法源码:
int main(int argc,char *argv[]) { int input[] {10,12,11,1,5,42,54,64,46,32}; int temp; int size = sizeof(input)/sizeof(input[0]); for(int i=0;i<size-1;i++) { for(int j=0;j<size-1;j++) { if(i!=j) { if(input[i]<input[j]) { temp = input[i]; input[i] = input[j]; input[j] = temp; } } } } for(auto iter = begin(input); iter!=end(input); ++iter) { cout <<*iter<<" "; } cout <<"\n"<<endl; return 0; }
?核心算法:
temp = input[i]; input[i] = input[j]; input[j] = temp;
?算法解析:
算法总的来说,就是通过两个循环,进行比较,如果大于就交换。
比如数组 【10,5,8】
第一趟:取10,分别和5, 8 比较,如果小于就交换位置。
第二天:取5,分别和10,8比较,如果小就交换位置。
第三趟:取8,分别和10,5比较,如果小就交换位置。
算法总结:
效率底下,算法过于简单,大家看一遍就应该能懂。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧