解题报告1

来源:互联网 发布:网络app销售彩票合法吗 编辑:程序博客网 时间:2024/05/22 07:03

冒泡排序

#include<stdio.h>

void paosort(inta[],int n);

int main()

{

   inta[10],i,j;

   for(i=0;i<10;i++)

      scanf("%d",&a[i]);

   paosort(a,10);

   for(i=0;i<10;i++)

      printf("%d",a[i]);

   return0;

}

void paosort(inta[],intn)

{

   inti,j,temp;

   for(j=0;j<n-1;j++)

      for(i=j+1;i<n;i++)

         if(a[j]>a[i])

         {

            temp=a[i];

            a[i]=a[j];

            a[j]=temp;

         }

}

选择排序

#include<stdio.h>

void DataSwap(int*data1,int* data2);

void SelectionSort(int*a,int n);

int main()

{

   inta[10],i,j;

   for(i=0;i<10;i++)

      scanf("%d",&a[i]);

   SelectionSort(a,10);

   for(i=0;i<10;i++)

      printf("%d\n",a[i]);

   return0;

}

void DataSwap(int*data1,int*data2)

{

   inttemp = *data1;

   *data1= *data2;

   *data2= temp;

}

void SelectionSort(int*a,intn)

{

   for(int i=0;i<n-1;i++)

   {

      intk = i;

      for(int j =i+1;j<n;j++)

         if(a[j]<a[k])

            k=j;

      if(k != i)

         DataSwap(&a[k],&a[i]);

   }

}

简单插入排序

#include<stdio.h>

void InsertSort(int*a,int n);

int main()

{

   inta[10],i,j;

   for(i=0;i<10;i++)

      scanf("%d",&a[i]);

   InsertSort(a,10);

   for(i=0;i<10;i++)

      printf("%d\n",a[i]);

   return0;

}

void InsertSort(int*a,intn)

{

   inti,j,temp;

   for(i=1;i<n;i++)

   {

      temp=a[i];

      for(j=i-1;j>=0&&temp>a[j];j--)

         a[j+1]=a[j];

      a[j+1]=temp;

   }

}

二分查找排序


快速排序

#include <stdio.h>
#define N 10 
void Qsort(int start,int length,int a[])
{
int x = a[start];
int i,j;
i = start;
j = length -1;
while(i < j)
{
if(x < a[j])
j--;
else if(x > a[j])
{
a[i] = a[j];
a[j] = x; 
i++;
}
else if(x < a[i])
{
a[j] = a[i];
a[i] = x;
j--;
}
else
i++;
}
if(start < length-1)
{
Qsort(start,i,a);
Qsort(i+1,length,a);
}
}


void main()
{
int a[N] = {0};
int i;
for(i = 0;i < N;i++)
scanf("%d",&a[i]);
Qsort(0,N,a);
for(i = 0;i < N;i++)
printf("%d ",a[i]);
}

 

0 0
原创粉丝点击