趁着复习把课上的作业和代码上传上来嘿嘿嘿,这个系列的代码都是自己写的或者老师教学用的可能内存管理上有点小瑕疵,但是算法理解还是不错的!本系列所有代码在dev-cpp上可以跑通~
冒泡排序:
#include<stdio.h>
int n;
int a[10001];
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d",a+i);
}
for(int i=n-1;i>0;i--){//冒泡排序主体
for(int j=0;j<i;j++){//初学可以记一下i和j的范围,记住后就非常容易了
if(a[j]>a[j+1]){
int t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
return 0;
}
原理就是相邻元素不断比较然后交换位置,时间复杂度为O(n^2),感觉这个排序没啥实用性,最好能不用就不用!
i的范围从n-1取到1,j从0到i-1,也可以倒着来~