定义输出整型数组的函数show ,对整型数组进行选择法降序排序函数choiceSortdesc, 对整型数组进行插入法升序排序函数 inssortAsc ,主函数中定义 10个元素的整型数组a,并用 31 48 41 15 32 45 46 23 34 37 去初始化数组a。然后调用show输出数组,调用choicSortDesc。后再调用 show 输出数组,最后调用 intSorAsc,再调用 show 输出数组。
代码如下:
#include <stdio.h>
#include <stdlib.h>
void show(int a[],int n)
{
int i;
for (i=0;i<n;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
//选择排序
void choiceSortdesc(int a[],int n)
{
int i,j;
int maxindex,tmp;
for (i=0;i<n-1;i++)
{
maxindex = i;
//找出第i大的数所在的位置
for(j=i+1;j<n;j++)
{
if(a[j] > a[maxindex])
maxindex = j;
}
//将第i小的数放在第i个位置
if (i != maxindex)
{
tmp = a[i];
a[i] = a[maxindex];
a[maxindex] = tmp;
}
}
}
//charufa
void inssortAsc(int s[],int n)
{
int a,i,j;
for(i=1;i<n;i++)
{
a=s[i];
j=i-1;
while(j>=0&&s[j]>a)
{
s[j+1]=s[j];
j--;
}
s[j+1]=a;
}
}
int main()
{
int a[]={31,48,41,15,32,45,46,23, 34 ,37};
show(a,10);
choiceSortdesc(a,10);
show(a,10);
inssortAsc(a,10);
show(a,10);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
void choiceSortdesc(int a[], int len){
int j,k,i,t;
for(j=0;j<len-1;j++)
{
k=j;
for(i=j+1;i<len;i++)
if(a[k]>a[i])
k=i;
{
t=a[j];
a[j]=a[k];
a[k]=t;
}
}
}
void inssortAsc(int a[], int len){
int i, iTemp, iPos;
/*从小到大排序*/
for(i=1;i<len;i++) /*循环数组中元素*/
{
iTemp = a[i]; /*设置插入值*/
iPos = i-1;
while((iPos>=0) && (iTemp<a[iPos])) /*寻找插入值的位置*/
{
a[iPos+1] = a[iPos]; /*插入数值*/
iPos--;
}
a[iPos+1] = iTemp;
}
}
void show(int a[], int len){
for(int i=0;i<len;i++) /*循环数组中元素*/
{
printf("%d",a[i]);
if(i < len -1){
printf(" ");
}
}
printf("\n");
}
int main(int argc, char* argv){
int num[] = {31,48,41,15,32,45,46,23,34,37};
show(num, 10);
choiceSortdesc(num, 10);
show(num, 10);
inssortAsc(num, 10);
show(num, 10);
getchar();
return 0;
}