今天是培训的第二天,还没有正式的开课,老师给讲了冒泡排序、快速排序、插入排序算法
1.冒泡排序:
#include <stdio.h>
#include <stdlib.h>
void swap(int *a,int *b);
int main(void)
{
int li_array[8]={6,8,2,7,9,10,5,4};
int i,j;
for(i=0;i<8;i++)
{
for(j=i+1;j<8;j++)
{
if(li_array[i]<li_array[j])
{
li_array[i]=li_array[j]^li_array[i];
li_array[j]=li_array[i]^li_array[j];
li_array[i]=li_array[i]^li_array[j];
}
}
}
for(i=0;i<8;i++)
{
printf("%4d",li_array[i]);
}
printf("\n");
return 0;
}
2.冒泡排序2:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int li_array[8]={6,8,9,10,5,4,3,7};
int i,j;
for(i=0;i<8;i++)
{
for(j=0;j<=8-i-1;j++)
{
if(li_array[j]<li_array[j+1])
{
li_array[j]=li_array[j]^li_array[j+1];
li_array[j+1]=li_array[j]^li_array[j+1];
li_array[j]=li_array[j]^li_array[j+1];
}
}
}
for(i=0;i<8;i++)
{
printf("%4d",li_array[i]);
}
printf("\n");
return 0;
}
3.插入排序:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i,j;
int li_array[8]={100,4,6,9,2,5,7,8};
int li_tmp;
for(i=1;i<8;i++)
{
li_tmp=li_array[i];
for(j=i-1;j>-1;j--)
{
if(li_tmp>li_array[j])
{
//li_tmp=li_array[j];
break;
}
else
{
li_array[j+1]=li_array[j];
//li_array[j]=li_tmp;
}
}
li_array[j+1]=li_tmp;
}
for(i=0;i<8;i++)
{
printf("%4d",li_array[i]);
}
printf("\n");
return 0;
}
4.选择排序:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int max,k;
int li_array[8]={1,2,5,8,9,3,4,6};
int i,j;
for(i=0;i<8-1;i++)
{
max=li_array[i];
k=i;
for(j=i+1;j<8;j++)
{
if(max<li_array[j])
{
max=li_array[j];
k=j;
}
}
li_array[k]=li_array[i];
li_array[i]=max;
}
for(i=0;i<8;i++)
{
printf("%4d",li_array[i]);
}
printf("\n");
return 0;
}
快速排序还没弄明白,,弄明白了再写,,,,