您的位置:首页 > 其它

算法

2016-01-22 13:47 176 查看
一、排序

1.选择排序

/*********************************
*author jishuzhain
*time 2016-01-21
*function 选择排序
*********************************/
#include<stdio.h>
int a[10];
int i, j, k, m;
int main()
{

printf("请输入10个数字,数字之间用空格隔开!\n");
for(i = 0; i < 10; i++)
scanf("%d", &a[i]);

//实现代码
for(i = 0; i < 9; i++)
{
k = i;
for(j = i+1; j < 10; j++)
if(a[k] > a[j])
k = j;  //找出一列中最小的数=a[k]
if(k != i)
{
m = a[i];
a[i] = a[k];
a[k] = m;
}
}

printf("用选择法由小到大排序后为\n");
for(i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}


2.冒泡排序

/****************************
*Author jishuzhain
*Time 2016-01-22
*Function 冒泡排序
*****************************/
#include<stdio.h>
int a[10], i, j, k;
int main()
{

printf("请输入10个数, 用空格隔开,以回车键结束!\n");
for(i = 0; i < 10; i++)
scanf("%d", &a[i]);

//实现代码
for(i = 0; i < 9; i++)
for(j = 0; j < 9-i; j++)
if(a[j] > a[j+1])
{
k = a[j];
a[j] = a[j+1];
a[j+1] = k;
}

printf("你输入的数字按冒泡法由小到大排序后为\n");
for(i = 0; i < 10; i++)
printf("%d ", a[i]);
return 0;
}


3。插入排序

/**************************
*Author jishuzhain
*Time 2016-01-22
*Function 插入排序法
***************************/
#include<stdio.h>
int main()
{
int i, j, k, a[10];
printf("请输入10个数字\n");
for(i = 0; i < 10; i++)
scanf("%d", &a[i]);
//实现代码
for(i = 1; i < 10; i++)
{
k = a[i];
j = i - 1;
while((j >= 0) && (a[j] > k))  //j大于0是为了不越界
{                              //while循环是判断前面的数
a[j+1] = a[j];             //是否大于比较的数,j--不断的后移
j--;                       //然后插入不满足的数的前一个,j+1
}
a[j+1] = k;
}
printf("插入排序后的数为:\n");
for(i = 0; i < 10; i++)
{
printf("%d ", a[i]);
}
return 0;
}


后面是希尔排序,快速排序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  函数 算法 排序 学习