c语言函数调用选择排序法 c语言选择排序法流程图( 二 )


int main()
{
int TestData[5] = {34,15,6,89,67};
int i = 0;
printf("排序之前的结果\n");
for(i = 0;i5;i++)
printf("|%d|",TestData[i]);
int retData = https://www.04ip.com/post/SelectSort(TestData,5);
printf("排序之后的结果:\n");
for(i = 0;i5;i++)
printf("|%d|",TestData[i]);
return 0;
}
4、简单选择排序中 , 需要移动的记录次数比较少,主要的时间消耗在对于数据的比较次数 。基本上 , 在比较的时候,消耗的时间复杂度为:n*n 。
C语言编程:选择法排序选择排序是一种简单直观c语言函数调用选择排序法的排序算法 。
工作原理c语言函数调用选择排序法:
每一次从待排序的数据元素中选出最?。ɑ蜃畲螅┑囊桓鲈豤语言函数调用选择排序法 , 存放在序列的起始位置c语言函数调用选择排序法,直到全部待排序的数据元素排完 。
性能:
选择排序是不稳定的排序方法(比如序列[5c语言函数调用选择排序法,5,3]第一次就将第一个[5]与[3]交换,导致第一个5挪动到第二个5后面) 。
选择排序的时间复杂度是O(n^2)
思想:
n个记录的文件的直接选择排序可经过n-1趟直接选择排序得到有序结果:
①初始状态:无序区为R[1..n],有序区为空 。
②第1趟排序
在无序区R[1..n]中选出关键字最小的记录R[k],将它与无序区的第1个记录R[1]交换,使R[1..1]和R[2..n]分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区 。
……
③第i趟排序
第i趟排序开始时,当前有序区和无序区分别为R[1..i-1]和R(i..n) 。该趟排序从当前无序区中选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区 。
C语言版代码:
【c语言函数调用选择排序法 c语言选择排序法流程图】#include stdio.h
#include math.h
#define MAX_SIZE 101
#define SWAP(x, y, t)((t) = (x), (x) = (y), (y) = (t))
void sort(int[], int);/* selection sort */
int main()
{
int i, n;
int list[MAX_SIZE];
printf("Enter the number of numbers to generate: ");
scanf_s("%d", n);
if (n1 || nMAX_SIZE){
fprintf(stderr, "Improper value of n\n");
exit(1);
}
for (i = 0; in; i++){/* randomly generate numbers */
list[i] = rand() * 1000;
printf("%d ", list[i]);
}
sort(list, n);
printf("\n Sorted array:\n");
for (i = 0; in; i++)/* print out sorted numbers */
printf("%d ", list[i]);
printf("\n");
return 0;
}
void sort(int list[], int n)
{
int i, j, min, temp;
for (i = 0; in - 1; i++){
min = i;
for (j = i + 1; jn; j++)
if (list[j]list[min])
min = j;
SWAP(list[i], list[min], temp);
}
}
关于c语言函数调用选择排序法和c语言选择排序法流程图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

推荐阅读