/*
5.已知一个顺序表la,其中la={a1,a2,…an},
试设计一个算法将其从小到大进行排序 ,再输出
*/
# include <iostream>
# include <stdio.h>
# include <stdlib.h>
using namespace std;
const int maxn = 1000 + 10;
typedef struct node
{
int *arr;
int length;
int maxsize;
}sqlist;
void createsqlist (sqlist &l)
{
l.arr = (int *) malloc (maxn * sizeof(int));
l.length = 0;
l.maxsize = maxn;
}
void insqlist(sqlist &l, int n)
{
printf("请依次输入数字创建顺序表:\n");
for(int i = 0; i<n; i++)
{
scanf("%d", &l.arr[i]);
}
l.length = n;
}
void outsqlist(sqlist l)
{
int i;
printf("顺序表的元素为:\n");
for(i = 0; i<l.length; i++)
{
printf("%d ", l.arr[i]);
}
printf("\n");
}
void swap(int &a, int & b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void sortsqlist(sqlist &l)
{
for(int i = 0; i<l.length; i++)
{
for(int j = 0; j<l.length-1; j++)
{
if(l.arr[j] > l.arr[j+1])
{
swap(l.arr[j], l.arr[j+1]);
}
}
}
}
int main()
{
int n;
sqlist l;
createsqlist(l);
printf("请输入元素个数n:\n");
scanf("%d", &n);
insqlist(l, n);
sortsqlist(l);
outsqlist(l);
return 0;
}