冒泡排序
冒泡排序:
应该是最基本的排序了,两层循环,外层控制趟数,内层控制每次两个值的比较并交换与否。
时间复杂度:O(n^2)
前几天做个题用的冒泡,结果Time limit exceed了....不知道是不是这个的问题。
比较基本就不放在函数里了。
代码:(升序排列)
#include<stdio.h> int main() { int a[7]={21,54,7,11,98,43,0}; int i,j,p; for(i=0;i<6;i++)//外循环 for(j=0;j<6-i;j++)//内循环 if(a[j]>a[j+1]) { p=a[j]; a[j]=a[j+1]; a[j+1]=p; } //交换前后2元素的值 for(i=0;i<7;i++) printf("%d ",a[i]); return 0; }
刚开始学程序的话,这些最基本的程序可以慢慢理解,但时间长了以后如果你不能熟练写出这些基本程序,靠理解现写的话,以后复杂的问题求解就会在这上面浪费很长时间,这些基本的理解及以后还是多练成为潜意识比较好。