算法
/***冒泡算法思想:两个泡泡,大的在后面,小的在后面***/
#include
void bubble(int a[],int n)
{
int temp=0;
int lastexchange=0; /***传递边界***/
int border=n-1;
for(int i=0;i { bool sort=true; for(int j=0;j { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; sort=false; /***两两交换,还得工作***/ lastexchange=j; /***新的边界,解决了不在遍历全部元素,而是从最后交换那个位置开始***/ } } border=lastexchange; /***给它新的边界***/ if(sort) /***sort==trune才做,每一轮循环如果有交换用里面的false,如果哪一次循环一次都没有交换那么就不会执行交换,用外面的true,就退出循环***/ { break; } } } int main() { int a[10],i; printf("请输入10个整数:\n"); for(i=0;i<10;i++) { scanf("%d",&a[i]); } bubble(a,10); printf("bubble后:\n"); for(i=0;i<10;i++) { printf("%4d",a[i]); } printf("\n"); } /***插入排序思想:把它看作摸牌过程。首先手里面有一张牌,所以i=1;摸第二张牌时和手里牌比较,比第一张牌小则往前,摸第二张牌,和前面两张牌比较,比他们都小则 移动到最前面,剩下两张牌向后移动。***/ #include void insert(int a[],int n) { int temp,i,j;