2010年12月7日 星期二

[C] Insertion sort


#include<stdio.h>
#include<stdlib.h>
void insertionSort(int * arr,int length);
int main()
{
    int i,j,t;
    int arr[100];
  
    printf("輸入個數: ");
    scanf("%d",&i);  
    for(j=0;j<i;j++)
    {
       t=j+1;
       printf("第%d個數: ",t);
       scanf("%d",&arr[j]);
    }

    printf("before sort: ");
    for(j=0;j<i;j++)
    {
       printf("%d ",arr[j]);
    }
    printf("\n");
   
    insertionSort(arr,i);
   
    printf("after sort: ");
   
    for(j=0;j<i;j++)
    {
       printf("%d ",arr[j]);
    }   
    printf("\n");
    system("pause");
    return 0;
}

void insertionSort(int * arr,int length)
{
    int t,k,tmp;   
    tmp=arr[0];
    for(t=1 ; t<length ; t++)
    {       
        for(k=t;k>0;k--)
        {
            if(arr[k]<arr[k-1])
            {
                tmp=arr[k];
                arr[k]=arr[k-1];
                arr[k-1]=tmp;
            }
        }
    }       
}

沒有留言:

張貼留言