【原创】冒泡排序,插入排序,选择排序 (改一行代码就可以互转了)附一个:快速排序
排序的时间要 交换值 , 查找的世界要 赋值 。
//by David,CSUer//冒泡排序和插入排序//下面这个是 冒泡排序#include"stdio.h"void swap(int *q,int *p){*q=*q+*p;*p=*q-*p;*q=*q-*p;}void sort(int *a,int l){int i,j;for(i=0;i<l;i++)for(j=1;j<l;j++) // 把这句改成 for(j=i;j>0;j--) 就是插入排序{if(a[j]<a[j-1]) //改成 for(j=0;j<l;j++) if(a[i]<a[j]) swap(&a[j],&a[i]);就是选择排序swap(&a[j],&a[j-1]); }}main(){ int j;int a[]={3,5,8,12,54,236,89,3,1,33};sort(a,10);for(j=0;j<10;j++)printf("%d ",a[j]);}三种排序代码只差一点点。时间复杂度都是 O(n^2) ,很容易掌握。
建议用 插入排序。
这里附个快速排序:
(明天补充)