C语言实现一维数组排序和逆序
本例用的是选择排序,先找出数组中最小的元素换到数组开头,再找出剩余未排序元素中的最小元素换到前面找出的最小元素之后,以此类推。
#include <stdio.h>
int process(int *a,int n,int m1,int m2)
{
int i,j;
for(j=0;j<=n-1;j++){//每次找出数组a的最小值,并将最小值和第一个元素对调
int min=a[j];
// int pos;
for(i=j;i<=n-1;i++){
int temp;
if(a[i+1]<min){
min=a[i+1];
// pos = i;
temp = a[j];
a[j] = a[i+1];
a[i+1] = temp;
}
}
}
//将m1到m2的元素逆序
int m3;
while(m1<m2){
m3 = a[m1-1];
a[m1-1] = a[m2-1];
a[m2-1] = m3;
m1++;
m2--;
}
//输出结果
for(i=0;i<=n-1;i++){
printf("%d\n",b[i]);
}
}
//main函数
int main()
{
int array[] = {5,17,9,10,-4,34,85,-11,64,79};
process(array,10,2,6);
return 0;
}
输出结果如下:
-11
10
9
5
1
-4
17
34
64
79
--------------------------------
Process exited after 0.2019 seconds with return value 0
请按任意键继续. . .