欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

选择排序法怎么写,简单选择法排序的排序过程

时间:2022-11-18 08:09:36

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

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13

#defineSWAP(x,y,t)((t)=(x),(x)=(y),(y)=(t))

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

voidselete_sort(intlist[],intn)

{

inti,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);//交换最小元素到当前起始位置。

}

}

写出选择排序法的过程篇2

template<classT>

classList

{protected:

intcount;

Tentry[maxList];

public:

List(intsize)

{count=size;}

voidinput()

{for(inti=0;i<count;i++)

cin>>entry[i];

}

voidoutput()

{for(inti=0;i<count;i++)

cout<<entry[i]<<"";

}

//otherfunctionmembers

};

template<classT>

classSortable_list:publicList<T>

{public:

Sortable_list(intsize):List<T>(size){}

voidshell_sort();

voidstraight_selection_sort();

voidinsertion_sort();

private:

intmax_key(intlow,inthigh);

voidsort_interval(intstart,intincrement);

};

template<classT>

intSortable_list<T>::max_key(intlow,inthigh)

{intk=low;

for(intj=low+1;j<=high;j++)

if(entry[k]<entry[j])

k=j;

returnk;

}

template<classT>

voidSortable_list<T>::straight_selection_sort()

{Ttemp;

intk;

for(inti=count-1;i>=1;i--)

{k=max_key(0,i);

if(k!=i)

{temp=entry[i];

entry[i]=entry[k];

entry[k]=temp;

}

}

}

这里我给出了一部分程序代码,后半部分就是选择排序算法,过程就是由这个算法实现

选择排序法篇3

这是冒泡法吧粘些资料给你:冒泡排序和选择排序是排序算法中比较简单和容易实现的算法。

冒泡排序的思想为:每一次排序过程,通过相邻元素的交换,将当前没有排好序中的最大(小)移到数组的最右(左)端。而选择排序的思想也很直观:每一次排序过程,我们获取当前没有排好序中的最大(小)的元素和数组最右(左)端的元素交换,循环这个过程即可实现对整个数组排序。

还有“。

c语言用指针写选择排序法篇4

你的程序没错,只不过这不是选择法,是冒泡发,选择发如下:

voidsort(int*a,intn)

{

inti,j,t,temp;

for(i=0;i{

t=i;/初始定义t为未排序数的第一个

for(j=i+1;j{

if(*(a+t)t=j;

}

temp=*(a+i);/t是最大的那个数的位置,把他和未排序的第一个交换位置

*(a+i)=*(a+t);

*(a+t)=temp;

}

}

main()

{

inti,a[10],*p=a;

printf("inputzhearraya:\n");

for(i=0;iscanf("%d",p++);

printf("\n");

p=a;

sort(p,10);

p=a;

printf("zhesortarrayis:\n");

for(i=0;iprintf("%d,",a[i]);

getch();

}

选择排序法:从小到大排列10个数并输出篇5

/*选择排序法:从小到大排列10个数并输出*/

#include<stdio.h>

#defineN10

voidmain()

{

inti,a[N],t,j;

for(i=0;i<N;i++)scanf("%d",&a[i]);

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

for(j=i+1;j<10;j++)

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

{

t=a[i];

a[i]=a[j];

a[j]=t;}

printf("排序后:\n");

for(i=0;i<N;i++)printf("%d",a[i]);

printf("\n");

}

c语言中选择排序法的程序怎么编篇6

第一个输入是数据总数

下面是每个数据分别输入

#include<stdio.h>

#include<stdlib.h>

#defineMAX50000

intAA[MAX],n;

voidgetdata(){

inti;

scanf("%d",&n);

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

scanf("%d",&AA[i]);

}

voidputdata(){

inti;

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

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

}

intpartion(intt,intp,intq){

inttem,i,j,v;

i=p;

j=q;

v=AA[t];

while(1){

while(AA[i]<=v&&i<=q)

++i;

while(AA[j]>v&&j>=p)

--j;

if(i>j)

break;

tem=AA[i];

AA[i]=AA[j];

AA[j]=tem;

}

AA[t]=AA[j];

AA[j]=v;

returnj;

}

voidpartionsort(intp,intq){

intj;

if(p<q){

j=partion(p,p+1,q);

partionsort(p,j-1);

partionsort(j+1,q);

}

}

intmain(intargc,char*argv[])

{

getdata();

partionsort(0,n-1);

putdata();

return0;

}

C语言的选择排序法应该怎么用篇7

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include<stdio.h>

voidmain()

{

inti,j,a[3],tmp;

printf("请输入3个数(用空格隔开):");

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

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

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

for(j=i+1;j<3;j++)

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

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

}

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

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

printf("\n");

}

满意请采纳!

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。