首页 > 学院 > 开发设计 > 正文

排序

2019-11-06 07:03:02
字体:
来源:转载
供稿:网友

选择排序

/*运用递归的思想来进行排序。

假设有n个数,用数组来存。

one:找出1..n(位置)的最小数,然后将其放到最前端,

1号位固定。

two:找出2..n(位置)的最小数,然后将其放到2..n的前端,

2号位固定。

………………………………………………………………….

一些运行下去,直到剩一个数字,结束。

*/

#include<stdio.h>voidselectsort(int a[],int n,int m);intgetmin(int a[],int n,int m);intmain(){    int a[6]={4,-1,6,1,1234,3};    selectsort(a,0,5);    int i;    for(i=0;i<6;i++)    {        PRintf("%d ",a[i]);    }    return 0;}voidselectsort(int a[],int n,int m){    int i;    if(n==m)        return;    i=getmin(a,n,m);    int temp=a[n];    a[n]=a[i];    a[i]=temp;     selectsort(a,n+1,m);}intgetmin(int a[],int n,int m){    int i;    int index=n;    for(i=n;i<=m;i++)    {        if(a[index]>a[i])        {            index=i;        }    }    return index;}

 

 

 

插入排序

#include<stdio.h>voidsort(int a[],int n);voidinsert(int a[],int n,int x);intmain(){    int a[4]={2,3,1,4};     sort(a,4);    int i;    for(i=0;i<4;i++)    {        printf("%d ",a[i]);    }    return 0;}voidsort(int a[],int n1){     if(n1==1)        return ;    sort(a,n1-1);    insert(a,n1-1,a[n1-1]); }voidinsert(int a[],int n2,int x){    int i;    for(i=n2-1;i>=0;i--)    {        if(a[i]>x)        {            a[i+1]=a[i];        }        else            break;    }    a[i+1]=x;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表