一个起泡排序的代码,问题是在排序的数列出现大于46的数字时,会变成46.
#include<stdio.h>
/*
time:2022.04.25
author:FZY
*/
void SelectSort(int r[],int n)
{
int index;
for(int i=0;i<n;i++)
{
index = i;
for(int j=i+1;j<n;j++)
{
if(r[j]<r[index])
index = j;
}
if(index!=i)
{
int temp;
temp = r[i];
r[i] = r[index];
r[index] = temp;
}
}
}
void BubbleSort(int r[],int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i;j++)
{
if(r[j]>r[j+1])
{
int temp;
temp=r[j];
r[j]=r[j+1];
r[j+1]=temp;
}
}
}
}
int main()
{
int r[] = {3,5,47,23,41,14,7,9,4};
int s[] = {2,5,3,9,24,47,43,21,4};
printf("选择排序:\n");
SelectSort(r,9);
for(int i=0;i<9;i++)
{
printf("%d ",r[i]);
}
printf("\n起泡排序:\n");
BubbleSort(s,9);
for(int i=0;i<9;i++)
{
printf("%d ",s[i]);
}
return 0;
}
排序数列里边莫名出现了46