网站首页 > 文章中心 > 其它

函数选择排序算法c语言

作者:小编 更新时间:2023-09-03 07:34:53 浏览量:383人看过

C语言选择法排序

#includestdio.h

void main()

函数选择排序算法c语言-图1

{

int b[M],i,j,t,k;

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

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

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

for(k=i,j=i+1;jM;j++)

if(b[k]b[j])

k=j;

if(i!=k)

t=b[i];

b[i]=b[k];

b[k]=t;

}

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

错在大括号位置加错了.

扩展资料:

C语言选择排序详解

工作原理是每一次从无序组的数据元素中选出最小(或最大)的一个元素,存放在无序组的起始位置,无序组元素减少,有序组元素增加,直到全部待排序的数据元素排完.

以升序为例的图解:

代码:

void SelectionSort(int *num,int n)

int i = 0;

int min = 0;

int j = 0;

int tmp = 0;

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

min = i;//每次讲min置成无序组起始位置元素下标

for(j = i;j n;j++)//遍历无序组,找到最小元素.

if(num[min]num[j])

min = j;

if(min != i)//如果最小元素不是无序组起始位置元素,则与起始元素交换位置

tmp = num[min];

num[min] = num[i];

num[i] = tmp;

(此处空一行)

int main()

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

return 0;

C语言选择排序法

这是选择排序.先用a[0]与a[1]比较,当a[0]a[1]时并不交换,而用k记下来现在a[0]最小......这样一趟比较完后a[k]就是整个数组中最小的元素,把它与a[0]交换;第二趟,从a[1]开始重复前面的操作,那么最后a[1]就是剩下的n-1个元素中最小的......看a[0]、a[1]已经由小到大排好了,当做完n-1趟时不就把整个数组都排好了吗?注意:t=array[k];array[k]=array[i];array[i]=t;不是for(j=i+1;jn;j++)的循环体,要等它循环完了后才执行一次.

c语言,使用函数的选择法排序

void?selectionsort(int?a[],int?m)

int?i,j;

int?k;

int?tmp;

for(i?=?0;?i?m-1;?i++)//控制循环次数,n个数需要n-1次循环

k?=?i;

for(j?=?i+1;?j?m?;?j++)

if(a[j]?a[k])

k?=?j;

//i不等于k是就证明a[i]不是最小的,

//i等于k时证明a[i]就是本轮比较过程中最小的值

if(i?!=?k)

tmp?=?a[i];

a[i]?=?a[k];

a[k]?=?tmp;

c语言怎样通过函数调用实现选择排序法

c语言通过函数调用实现选择排序法:

①.、写一个简单选择排序法的函数名,包含参数.int SelectSort(int * ListData,int ListLength);

int SelectSort(int * ListData,int ListLength)

int i , j ;

int length = ListLength;

int k = i;

for(j=i+1;j=length-1;j++)

if(ListData[k]ListData[j])

if(k!=i)

int tmp = ListData[i];

ListData[i] = ListData[k];

ListData[k] = tmp;

printf("排序之前的结果\n");

printf("|%d|",TestData[i]);

printf("排序之后的结果:\n");

C语言中的选择排序法是什么?

选择排序(Selection sort)是一种简单直观的排序算法.工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完.

以下是一个实现选择排序的例子:

#define?SWAP(x,?y,?t)?((t)?=?(x),?(x)?=?(y),?(y)?=?(t))

//将list中的n个数据,通过选择排序算法排序.

void?selete_sort(int?list[],?int?n)

int?i,?j,?min,?temp;

for?(i?=?0;?i?n?-?1;?i++){

min?=?i;

for?(j?=?i?+?1;?j?n;?j++)//找出最小元素的下标.

if?(list[j]?list[min])

min?=?j;

SWAP(list[i],?list[min],?temp);//交换最小元素到当前起始位置.

以上就是土嘎嘎小编为大家整理的函数选择排序算法c语言相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章