青蛙排序
此类排序的前提是数组中的内容和下标有对应关系。
此排序时间复杂度为0(n),空间复杂度为O(1)
- #include "stdio.h"
- int main(){
- int a[10]={5,3,2,1,8,6,4,7,10,9} ;
- int b,i,j,n=10;
- for(j=0;j<n;j++)
- printf("%d/t",a[j]);
- printf("================/n");
- for(i=0;i<n;i++){
- while(a[i]!=(i+1)){
- b=a[a[i]-1];
- a[a[i]-1]=a[i];
- a[i]=b;
- for(j=0;j<n;j++)
- printf("%d/t",a[j]);
- printf("/n");
- }
- printf("---------------------/n");
- }
- printf("================/n");
- for(i=0;i<n;i++)
- printf("%d/t",a[i]);
- return 0;
- }