#include<stdio.h>
void maopao(int a[],int n){
int i,j,t,k;
printf("初始关键字: ");
for(k=0;k<n;k++)printf(" %d",a[k]);
printf("\n");
for(i=0; i<n-1; i++) {
for(j=0; j<n-1-i; j++)
if(a[j] > a[j+1]) {
int t = a[j];
a[j] = a[j+1];
a[j+1]=t;
}
printf("第%d趟冒泡排序: ",i+1);
for(k=0;k<n;k++)printf(" %d",a[k]);
printf("\n");
}
printf("冒泡排序后结果:");
for(k=0;k<n;k++)printf(" %d",a[k]);
printf("\n");
}
void maopaoplus(int a[],int n){
int i,j,k,t;
int flag = 1;
printf("初始关键字: ");
for(k=0;k<n;k++)printf(" %d ",a[k]);
printf("\n");
for(i=0;i<n-1;i++){
flag = 0;
for(j=n-1;j>i;j--)
{
if(a[j] < a[j-1]){
t = a[j];
a[j] = a[j-1];
a[j-1] = t;
flag = 1;
}
}
if(!flag){
continue;
}
printf("第%d趟冒泡排序: ",i+1);
for(k=0;k<n;k++)printf(" %d ",a[k]);
printf("\n");
}
printf("改进冒泡排序后结果:");
for(k=0;k<n;k++)printf(" %d ",a[k]);
printf("\n");
}
void zhijie(int num[],int n){
int i,j,t,k;
printf("初始关键字: ");
for(k=0;k<n;k++)printf(" %d ",num[k]);
printf("\n");
for(i=1;i<n;i++){
if(num[i]<num[i-1]){
t = num[i];
j = i-1;
do{
num[j+1] =num[j];
j--;
}while(j>=0&&num[j]>t);
num[j+1] = t;
}
printf("第%d趟冒泡排序: ",i);
for(k=0;k<n;k++)printf(" %d ",num[k]);
printf("\n");
}
printf("直接插入排序后结果:");
for(k=0;k<n;k++)printf(" %d ",num[k]);
printf("\n");
}
int Partition(int* arr, int low, int high)
{
int tmp = arr[low];
while (low < high)
{
while (low<high && arr[high]>tmp)
{
high--;
}
if (low < high)
{
arr[low] = arr[high];
}
while (low < high && arr[low] <= tmp)
{
low++;
}
if (low < high)
{
arr[high] = arr[low];
}
}
arr[low] = tmp;
return low;
}
void Quick(int* arr, int low, int high)
{
int par = Partition(arr,low, high);
if (low < par - 1)
{
Quick(arr, low, par - 1);
}
if (par + 1 < high)
{
Quick(arr, par + 1, high);
}
}
void QuickSort(int* arr, int len)
{
Quick(arr, 0, len - 1);
printf("快速排序后结果:");
for (int i = 0; i < len; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
void simplesort(int a[],int n)
{
int i,j,k,t;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++)
if(a[j]<a[k])k=j;
if(k!=i){
t = a[i];
a[i] = a[k];
a[k] = t;
}
printf("第%d趟,选择关键字%d,排序结果为:",i+1,a[i]);
for(k=0;k<n;k++)printf(" %d ",a[k]);
printf("\n");
}
printf("简单选择排序后结果:");
for(k=0;k<n;k++)printf(" %d ",a[k]);
printf("\n");
}
#include"sort.h"
int main(){
int num[]={49,38,65,97,76,13,27,49};
simplesort(num,8);
}