四种排序算法
来源:互联网 发布:全景摄影师 知乎 编辑:程序博客网 时间:2024/04/29 13:45
#include "stdio.h"
int a[10] = {10,9,8,7,6,5,4,3,2,1};
display(int a[],int n)
{
int i;
for(i = 0; i < n; i ++)
printf("%d ",a[i]);
printf("\n");
}
int qsort(int a[], int n)//快速排序算法
{
int i = 0, j = n - 1;
int k = a[i];
if (0 < n - 1)
{
while (i < j)
{
while (i < j && a[j] > k)
j--;
if (i < j)
a[i++] = a[j];
while (i < j && a[i] < k)
i++;
if (i < j)
a[j--] = a[i];
display(a,n);
}
a[i] = k;
display(a,n);
qsort(a, i);
qsort(a + i + 1, n - i - 1);
}
return 0;
}
void csort(int a[], int n)//插入法
{
int i,j;
int min;
for ( i = 0; i < n; i ++)
{
min = a[i];
for ( j = n + i -1; j >= 0 && a[j] > min; j --)
a[j + 1] = a[j];
a[j + 1] = min;
}
for (i = 0;i < n; i ++)
a[i] = a[i + n];
}
void msort(int a[], int n)//冒泡法
{
int i,j;
int key;
for (j = 0; j < n-1; j ++)
{
for (i = 0;i < n - j -1;i ++)
{
if (a[i] > a[i + 1])
{
key = a[i];
a[i] = a[i + 1];
a[i + 1] = key;
}
display(a,n);
}
}
}
void xsort(int a[], int n)//选择法
{
int i,j,k;
int min = 0,key;
for (i = 0;i < n - 1; i ++)
{
min = a[i];
for (j = i;j < n; j ++)
{
if (a[j] < min)
{
min = a[j];
k = j;
}
}
key = a[i];
a[i] = min;
a[k] = key;
}
}
main()
{
int i;
int n = sizeof(a) / sizeof (int);
xsort(a,n);
display(a,n);
// printf("\n");
// csort(a,n);
//display(a,n);
// msort(a,n);
return 0;
}
- 四种排序算法
- 四种排序算法
- 四种排序算法
- 算法--四种排序
- 四种排序算法
- C#四种排序算法
- 四种排序算法学习
- C#四种排序算法
- C#四种排序算法
- c#四种排序算法!
- C#四种排序算法
- C#四种排序算法
- C#四种排序算法
- C#四种排序算法
- C#四种排序算法
- C#四种 排序算法
- C#四种排序算法
- C#四种排序算法
- hive集群安装配置
- 古老的goto语句
- canvas学习笔记(一)-认识canvas
- atoi函数
- ARPFree-ARP反击工具 (部分)
- 四种排序算法
- ios企业开发者帐号使用
- 页面文件对磁盘格式化的影响
- 吃了一个好吃的鸡蛋,便想认识这个下蛋的母鸡
- [转载]IOS view变为Image
- git使用规则
- [黑马程序员] _C#基础知识小结
- MSMQ的安装
- Toast重复显示问题解决