一、冒泡排序
1:未优化
void bubble_sort(int array[],int length){
int temp=0;
for(int i=length-1;i>=0;i--)
{
for(int j=0;j<i;j++)
{
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
}
2:优化
设置flag,若某次循环中未发生交换,则不需要继续进行排序
void bubble_sort(int array[],int length){
int temp=0;
int flag=1;
for(int i=length-1;i>=0&&flag;i--)
{
for(int j=0;j<i;j++)
{
if(array[j]>array[j+1])
{
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=0;
}
}
}
}
二、选择排序
快速排序是我这个菜鸟最喜欢用的排序。
void select_sort(int *a,int length){
int min=0;
int temp=0;
for(int i=0;i<length-1;i++)
{
min=i;
for(int j=i+1;j<length;j++){
if(a[min]>a[j])
{
min=j;
}
}
if(i!=min){
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
}
}