2-24-c-algorithm
帖一些C语言的代码吧,一些基础的,较为简单的代码,没事的时候可以复习一下, 一直说这学期还是刷JudgeOnline 还是没做到啊,等节奏定下来就开始,一共三千多道题,真心爽。。。
还是先搞点简单的吧。
快排,核心思想就是每次找到一个元素的合适位置,同时保证前面的元素都小于他,后面的元素都大于他。
#include <stdio.h>
int findSeat(int l[],int low,int high)
{
int prvotkey=l[low];
int temp;
temp=l[low];
while (low<high)
{
while (low<high&&l[high]>=prvotkey)
--high;
l[low]=l[high];
while (low<high&&l[low]<=prvotkey)
++low;
l[high]=l[low];
}
l[low]=temp;
return low;
}
void qsort(int l[],int low,int high)
{
int prvotloc;
if(low<high)
{
prvotloc=findSeat(l,low,high); //将第一次排序的结果作为枢轴
qsort(l,low,prvotloc-1); //递归调用排序 由low 到prvotloc-1
qsort(l,prvotloc+1,high); //递归调用排序 由 prvotloc+1到 high
}
}
void quicksort(int l[],int n)
{
qsort(l,1,n); //第一个作为枢轴 ,从第一个排到第n个
}
void main()
{
int a[200],n,i;
printf("n=");
scanf("%d",&n);
for (i=1;i<=n;i++)
scanf("%d",&a[i]);
quicksort(a,n);
printf("right number:");
for(i=1;i<=n;i++)
printf("%d ",a[i]);
printf("\n");
}
排序大概就一个快排吧,冒泡、选择就算了。接下来是些字符串处理的吧。