写了一下排序算法,冒泡,选择,插入,思路写在注释里了,仅供参考。
#include<stdio.h>
int a[10] = {1,48,12,16,13,19,34,24,26,36};
int b[10];
void buddlesort(int a[],int n)//冒泡排序
{
for(int i=0;i<n-1;i++)//一共比较n-1轮
{
for(int j=0;j<n-1-i;j++)//每一轮都是从0开始,由于是和加1比,所以要多减一
{
if(a[j+1]>a[j])
{
int temp = a[j+1];
a[j+1] = a[j];
a[j] = temp;
}
}
}
}
void select_sort(int a[],int n)//选择排序
{
for(int i=0;i<n-1;i++)
{
int min = i;
for(int j=i+1;j<n;j++)//进行n-1轮,然后找出最小值的下标,判断最开始选定的最小值是否发生变化,是则进行交换
{
if(a[min]>a[j])
{
min = j;
}
}
if(min != i)
{
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
}
void insert_sort(int a[],int n)//插入排序
{
for(int i=1;i<n;i++)//和上面一样,也是n-1轮
{
int j = i-1;
int temp = a[i];
while(j>=0&&temp<a[j])//这里如果理解不了最好自己算一下,就是把比temp大的一直往右移位,一直找到比temp小的,此时j的值就是比temp小的那一位的值,然后令它的前一位等于temp即可
{
a[j+1] = a[j];
j--;
}
a[j+1] = temp;
}
}
void upset(int a[])
{
for(int i = 0;i<8;i++)
{
if(i%2==0)
{
int temp = a[i];
a[i] = a[i+2];
a[i+2] = temp;
}
else continue;
}
}
void print(int a[])
{
for(int i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
int main()
{
bubble_sort(a,10);
print(a);
upset(a);
print(a);
select_sort(a,10);
print(a);
upset(a);
print(a);
insert_sort(a,10);
print(a);
return 0;
}