page contents

C-选择排序

选择排序
对一个序列进行选择排序,首先通过一轮循环比较,从n个数据中找出最大或者最小的那个数据的位置,
然后按照递增或者递减的顺序,将此数据与第一个或最后一个数据进行交换。
然后再找第二大或者第二小的数据进行交换,
以此类推,直到序列全部有序为止。
选择排序与冒泡排序的区别在于,冒泡排序每比较一次后,满足条件的数据就交换,
而选择排序是每次比较后,记录满足条件数据的位置,一轮循环过后再作交换。 
代码实例:
void SelectSort(int x[], int n)//选择排序
{
int i, j, min,k;
for (i = 0; i < n; i++)
{
min=i;
for (j = i; j < n; j++)
{
if (x[min] > x[j])
min = j;
}
k = x[i];
x[i] = x[min];
x[min] = k;
}
for (i=0;i<n;i++)
printf("%d\t",x[i]);
}

main(){

//定义无序数组

srand((unsigned)time(NULL));

int arr[10];

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

{

arr[i] = rand() % 100;

printf("arr[%d]:%d\n", i, arr[i]);

}

SelectSort(arr,10);

printf("-------------------------------\n");

printf("交换后:\n");

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

{

printf("arr[%d]:%d\n", i, arr[i]);

}

}

  • 发表于 2021-08-10 22:11
  • 阅读 ( 463 )
  • 分类:C/C++开发

你可能感兴趣的文章

0 条评论

请先 登录 后评论
文双
文双

NB

71 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章