c语言20个数排序函数 c语言对10个数排序

C语言编程,用选择法对数组中20个实数进行排序

选择排序法:

创新互联建站专注于浪卡子网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供浪卡子营销型网站建设,浪卡子网站制作、浪卡子网页设计、浪卡子网站官网定制、微信平台小程序开发服务,打造浪卡子网络公司原创品牌,更为您提供浪卡子网站排名全网营销落地服务。

#include

"stdio.h"

#define

N

20

main()

{

int

i,j,k;

float

a[N],t;

printf("请输入二十位数:\n");

for(i=0;iN;i++)

scanf("%f",a[i]);

for(i=0;iN-1;i++)

{

k=i;

for(j=i+1;jN;j++)

if(a[k]a[j])

k=j;

if(i!=k)

{

t=a[k];

a[k]=a[i];

a[i]=t;

}

}

for(i=0;iN;i++)

printf("%f\t",a[i]);

printf("\n");

}

插入排序法:

#include

"stdio.h"

#define

N

20

main()

{

int

i,j;

float

a[N],k;

printf("请输入二十位数:\n");

for(i=0;iN;i++)

scanf("%f",a[i]);

for(i=0;iN;i++)

{

k=a[i];

j=i-1;

while(j=0ka[j])

{

a[j+1]=a[j];

j--;

}

a[j+1]=k;

}

for(i=0;iN;i++)

printf("%f\t",a[i]);

printf("\n");

}

冒泡排序法:

#include

"stdio.h"

#define

N

20

main()

{

int

i,j;

float

a[N],t;

printf("请输入二十位数:\n");

for(i=0;iN;i++)

scanf("%f",a[i]);

for(i=0;iN;i++)

for(j=i+1;jN;j++)

if(a[i]a[j])

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

for(i=0;iN;i++)

printf("%f\t",a[i]);

printf("\n");

}

如果对你有帮助,请记得采纳最佳答案,谢谢!

用函数编程实现在一个未排序的长度为20的数组按升序排序

常用的c语言排序算法主要有三种即冒泡法排序、选择法排序、插入法排序。

一、冒泡排序冒泡排序:

是从第一个数开始,依次往后比较,在满足判断条件下进行交换。代码实现(以升序排序为例)

#includestdio.hint main()

{

int array[20] = { 6,9,7,8,5,3,4,0,1,2 , 21,23, 18, 33, 28,29,38,26, 48,19};

int temp;

for (int i = 0; i 20; i++)

{//循环次数

for (int j = 0; j 20 - i-1; j++)

{

if (array[j] array[j+1])

{//前面一个数比后面的数小时发生交换

temp = array[j];

array[j] = array[j+1];

array[j + 1] = temp;

}

}

} //打印数组

for (int i = 0; i 20; i++)

printf("%2d", array[i]);

return 0;}

}

二、选择排序以升序排序为例:

就是在指定下标的数组元素往后(指定下标的元素往往是从第一个元素开始,然后依次往后),找出除指定下标元素外的值与指定元素进行对比,满足条件就进行交换。与冒泡排序的区别可以理解为冒泡排序是相邻的两个值对比,而选择排序是遍历数组,找出数组元素与指定的数组元素进行对比。(以升序为例)

#includestdio.h

int main()

{

int array[10] = { 6,9,7,8,5,3,4,0,1,2 };

int temp, index;

for (int i = 0; i 9; i++)

{

index = i;

for (int j = i; j 10; j++)

{

if (array[j] array[index])

index = j;

}

if(i != index)

{

temp = array[i];

array[i] = array[index];

array[index] = temp;

}

for(int i=0;i10:i++)

printf("%2d"array[i]);

return 0;

}

三、快速排序

是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

void QuickSort(int* arr, int size)

{

int temp, i, j;

for(i = 1; i size; i++)

for(j=i; j0; j--)

{

if(arr[j] arr[j-1])

{

temp = arr[j];

arr[j]=arr[j-1];

arr[j-1]=temp;

}

}

}

C程序题:一个数列有20个整数,要求编写一个函数,它能够对从指定位置开始的n个数进行排序,其余的数不变

#include "stdio.h"

int a[20];

void function(int *b,int m,int n)

{

int p,q;

int t;

for(p=m-1;pm+n-1;p++)

{for(q=m-1;qp;q++)

{

if(*(a+p)*(a+q))

{

t=*(a+p);*(a+p)=*(a+q);*(a+q)=t;

}

}

}

}

void main()

{

int i,x,y;

for(i=0;i20;i++)

{

printf("请输入第%d个数:\n",i+1);

scanf("%d",(a+i));

}

printf("从第x个数开始,对后面的y个数进行从小到大排序,输入x、y:\n");

scanf("%d,%d",x,y);

printf("原始数列是:\n");

for(i=0;i20;i++)

{

printf("a[%d]=%2d,",(i+1),*(a+i));

}

printf("\b\n");

function(a,x,y);

printf("排序后的数列为:\n");

for(i=0;i20;i++)

{

printf("a[%d]=%2d,",(i+1),*(a+i));

}

printf("\b\n");

}

(下面是程序运行截图)

c语言中输入20个数排列大小顺序

代码如下:

int a[20];

int i,j,t;

printf("请输入20个数字,以回车间隔:");

for(i=0;i20;i++)

scanf("%d",a[i]);

printf("\n");

for(j=0;j20;j++)

for(i=0;i20-j;i++)

if(a[i]a[i+1])

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf("排序好的数组为:\n");

for(i=0;i20;i++)

printf("%d ",a[i]);

printf("\n");

}

c语言随机产生20个整数然后排序 顺序 越简单越好(新新手)

#includestdio.h

#includestdlib.h

int main(void){

int i,j,n,a[20];

//限定整数范围为0~k。如果不需要范围,可以去掉%k

int k=100;

for(i=0;i20;i++)

a[i]=rand()%k;

//排序a[20],从小到大

for(i=0;i19;i++){

for(j=i+1;j20;j++){

if(a[i]a[j]){

n=a[i];

a[i]=a[j];

a[j]=n;

}

}

}

//输出a[20]

for(i=0;i20;i++)

printf("%d ",a[i]);

return 0;

}


文章标题:c语言20个数排序函数 c语言对10个数排序
文章网址:http://cdiso.cn/article/hpsehc.html

其他资讯