C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的进行排序

C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的进行排序,第1张

这样:

int a = (int )malloc(sizeof(int) n); //动态分配数组空间 ,有几个元素,n就是几。

for(i=0; i<n; i++)

{

a[i]=录入数值;

}

Sort(a, n);

for(j=0; j<n; j++)

{

printf("%d",a[ij);//输出的内容就是排序好了的

}

//下面方法是用来排序的

void Sort(int a, int n)

{

int i, j, temp;

for(i=0; i<n; i++)

{

for(j=i; j<n; j++)

{

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

{

temp = a[i];

a[i] = a[j];

a[j] = temp;

}

}

}

扩展资料:

注意事项

1、选择排序法是将序列分为两段,有序前列和无序后列,每次查找无序后列中最大元素,将其插入到有序前列的最末尾处,直至无序后列最后一个元素,最终排序后的序列为降序序列。

2、适用于包括数组和向量在内的序列。

3、选择排序与冒泡排序的区别是选择排序每次遍历时会记住最大元素的位置,只进行一次交换,而冒泡排序每次遍历时会交换两个顺序不合法的元素。

算法程序:

#include "stdafxh"

#include<iostream>

using namespace std;

void SelectSort(int A[],int n)

{

for(int i = 0;i < n;i++ )

{

int max =i;

for(int j = i+1;j < n;j++) //查找最大元素所在位置

{

if (A[j] > A[max])

max =j;

}

int temp = A[max];  //交换无序后列中首元素与最大元素的位置

A[max] = A[i];

A[i] = temp;

}

}

#include

"stdioh"

void

reverse(int

a[],int

pos,int

n)//把数组a中从下标pos开始的n个数逆置

{

int

p=a+pos;

int

q=a+pos+n-1;

while(p<q)

{

int

temp=p;

p=q;;

q=temp;

p++;q--;

}

}

void

main()

{

int

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

int

pos,n;

int

i;

scanf("%d%d",&pos,&n);

reverse(a,pos,n);

for(i=0;i<10;i++)

printf("%d

",a[i]);

}

#include

<stdioh>

void

Sort(

int

s,

int

n

)

{

int

p

=

s;

//定义一个指向数组首地址的指针

int

q,

tmp;

for(

;

p

<

s+10;

p++

)

//当指针移动到数组的末端结束

{

for(

q

=

p

;

q

<

s+10;

q++

)

//按照插入排序的方式执行

{

if(

q

<

p

)

{

tmp

=

p;

p

=

q;

q

=

tmp;

}

}

}

}

int

main()

{

int

i;

int

s[10]

=

{9,8,7,6,5,4,3,2,1,0};

Sort(s,10);

//调用排序函数

for(

i

=

0;

i

<

10;

++i

)

//输出排序后的结果

{

printf("%d

",s[i]);

}

printf("\n");

return

0;

}

#include

#include

#include

intmain()

{

inti,j,n,k,t,a[100];

srand((unsigned)time(NULL));

<p

利用rand()函数产生随机数字,rand()%n产生小于n的随机数,然后交换。

运行的结果:

#include

#include

intmain()

{

int&nbs

利用rand()函数产生随机数字,rand()%n产生小于n的随机数,然后交换。

扩展资料

C语言排序法

在一层循环找出最小数的下标,该下标用min保存,直到比较完整个数组,即可找到最小的数,然后将该数放入数组的第一位。

这样只能排好一个元素,于是需要再嵌套一层外层循环即可排好所有元素。第二次循环就不用再比较第一个元素了,因为第一个元素已经排好,依次类推,每一次循环就会排好一个,进行n-1次循环即可排好所有元素。

以上就是关于C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的进行排序全部的内容,包括:C语言:用选择排序法对一个数组里的数进行排序,从小到大,要求选出小的进行排序、用C语言怎么对数组元素进行排序,急!!求高手解答、编写一个C语言程序,利用指针对数组进行排序,并解释所编写的代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9329241.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存