谁会写选择法排序的代码阿。急急急,在线等。
发布网友
发布时间:2022-05-02 18:38
我来回答
共4个回答
热心网友
时间:2022-06-21 06:33
void SelectSort(RecordType r[], int length) /*length为待排序记录的个数*/
{
int temp;
for ( i=0 ; i< length-1 ; i++) //n-1趟排序
{
int index=i; //假设index处对应的数组元素是最小的
for ( j=i+1 ; j < length ; j++) //查找最小记录的位置
if (r[j].key < r[index].key )
index=j;
if ( index!=i) //若无序区第一个元素不是无序区中最小元素,则进行交换
{
temp= r[i]; r[i]= r[index]; r[index]=temp; //利用temp作为临时空间,交换两个值
}
}
}
热心网友
时间:2022-06-21 06:33
void sa(int array[],int n)
{
int i,j,k,temp;
for(i=0;i<10;i++)
{
k=i; //保存i的值,用k来进行循环排序
for(j=i+1;j<n;j++) //将第i个元素后面的元素与第i个元素进行比较
if(array[j]<array[k]) //如果第k=i个元素后面的元素小于i号元素,交换两个元素的标号, 这样就将最小元素的标号放到最前面
k=j; //交换标号
temp=array[k]; //循环结束后,交换两个标号下的元素的值
array[k]=array[i];
array[i]=temp;
}
}
热心网友
时间:2022-06-21 06:34
#include <stdio.h>
void SelectionSort(int a[], int n)
{
int i,j;
int min;
int t;
for(i = 0; i < n-1; i ++)
{
int min = i;
for(j = i+1; j < n; j ++)
if(a[min] > a[j])
{
min = j;
}
t = a[min];
a[min] = a[i];
a[i] = t;
}
}
int main(void)
{
int i;
int a[10] = {-9,8,7,6,-5,4,3,2,-1,0};
SelectionSort(a,10);
for(i = 0; i < 10; i ++)
printf("%-3d",a[i]);
return 0;
}
热心网友
时间:2022-06-21 06:34
for(i=0;i<数组长度;i++){
minLocated=i;
for(j=i+1;j<数组长度;j++){
if(number[minLocated]>j)
minLocated=j;
}
temp = number[i];
number[i] = number[ minLocated ];
number[ minLocated ] = temp;
}追答不懂得 你再问我吧