用冒泡法和选择法对一个整数数组进行排序,数组要求包含10个以上元素,由用户输入。排序算法要求用函数实现
冒泡:
#include<stdio.h>
int main()
{
int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};
//排序
for(i=1;i<10;i++) //外循环控制排序趟数,n个数排n-1趟
{
for(j=0;j<10-1;j++) //内循环每趟比较的次数,第j趟比较n-i次
{
if(a[j]>a[j+1]) //相邻元素比较,逆序则交换
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序后的结果是:\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
选择法
#include<stdio.h>
int main()
{
int i,j,min,t,a[10]={2,4,8,3,6,9,7,222,64,88};
printf("排序前的序列为:\n");
for(i=0;i<10;i++) //输出排序前的序列
{
printf("%5d",a[i]);
}
printf("\n");
for(i=0;i<9;i++)
{
min=i; //把每次循环的第一个数作为最小值
for(j=i+1;j<10;j++)
{
if(a[min]>a[j])
min=j; //交换
}
if(min!=i) //说明第一个数不是最小数,所以将a[i+1]~a[10]中最小值与a[i]对换
{
t=a[min];
a[min]=a[i];
a[i]=t;
}
}
printf("排序后的序列为:\n");
for(i=0;i<10;i++) //输出排序后的序列
printf("%5d",a[i]);
printf("\n");
return 0;
}
void sel(int a[],int n)
{
for(int i=0;i<n-1;i++)
{
int k= i;
for(int j=i+1;j<n;j++)
if(a[k] > a[j])
k = j;
if(k != i)
{
int t = a[k];
a[k] = a[i];
a[i] = t;
}
}
}
void mp(int a[],int n)
{
for(int i=0;i<n-1;i++)
for(int j=0;j<n-i-1;j++)
{
if(a[j] < a[j+1])
{
int t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
int main()
{
int a[1000],n;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
sel(a,n);
for(int i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
mp(a,n);
for(int i=0;i<n;i++)
printf("%d ",a[i]);
}
#incldue <bits/stdc++.h>
using namespace std;
int n;
int arr[15];
int main(){
cin >> n;
for (int i = 1;i <= n;i++) cin >> arr[i];
sort(arr + 1,arr + 1 + n);
for (int i = 1;i <= n;i++) cout << arr[i] << " ";
}
#include <stdio.h>
#define MAXSIZE 100
void Sort(int *a, int len)
{
int i, j;
int tmp;
for (i = 0; i < len; i++)
{
for (j = 0; j < len - i - 1; j++)
{
if (a[j] > a[j + 1])
{
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
}
}
}
}
int main()
{
int a[MAXSIZE];
int i, n;
printf("输入待排序个数:");
scanf("%d", &n);
printf("输入待排序元素:");
for (i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
printf("排序前元素:");
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
printf("\n");
Sort(a, n);
printf("排序后元素:");
for (i = 0; i < n; i++)
{
printf("%d ", a[i]);
}
return 0;
}