人造人 发表于 2016-12-10 00:07
这个图的速度有点快,可以放慢速度吗?
其实就是找到整个序列中最小的数然后放到当前位置~~ 小甲鱼 发表于 2016-12-13 16:32
其实就是找到整个序列中最小的数然后放到当前位置~~
那就是不可以了^_^ 人造人 发表于 2016-12-10 00:07
这个图的速度有点快,可以放慢速度吗?
我调慢了0.5s chhch 发表于 2018-6-24 17:17
我调慢了0.5s
谢谢 为什么不在if语句里交换,像这样
void selection_sort(int array[], int length)
{
int i, j, temp;
for(i = 0; i < length - 1; i++)
{
for(j = i + 1; j < length; j++)
{
if(array > array)
{
temp = array;
array = array;
array = temp;
}
}
}
} {:10_250:} #include<stdio.h>
void insert(int a[],int len)
{
int i,j,min,tem;
for(i = 0;i < len - 1;i++)
{
min = i;
for(j = i+1;j < len; j ++)
{
if(a > a)
min = j;
}
tem = a;
a = a;
a = tem;
}
}
int main(void)
{
int i = 0,len;
int a[] = {23,3,4,4,3,65,45,76,45,34,76,23,34,45,65,3,4432,23,43,23,2};
len = sizeof(a)/sizeof(a);
insert(a,len);
for(i = 0;i < len;i++)
{
printf("%d ",a);
}
return 0;
} #include <stdio.h>
void insert(int a[],int len)
{
int i,j,k,tem;
for(i = 0;i < len;i ++)
{
tem = a;
for(j = i + 1 ;j < len; j++ )
{
if(a > a)
{
a = a;
k = j;
}
}
a = tem;
}
}
int main()
{
int a[] = {3,4,2,54,2,6,3,47,4,23,5,23,87,5,76,34,23,4,6745,23,54,98};
int len,i;
len = sizeof(a) / sizeof(a);
insert(a,len);
for(i = 0;i < len;i++)
{
printf("%d ",a);
}
putchar('\n');
return 0;
} 我这样写怎么打印出来的不对,有没有童鞋给看看?
void select(int arr[],int len)
{
int i,j,tt;
int tem,min;
for(i=0;i<len-1;i++)
{
min=arr;
for(j=i+1;j<len;j++)
{
if(min>arr)
{
min=arr;
tt=j;
}
}
tem=min;
arr=arr;
arr=tem;
}
} 好好学习才能天天向上! 2316829671 发表于 2019-4-12 16:16
为什么不在if语句里交换,像这样
他的原理是找到最小的那个,在进行交换,而不是找到一个小的就交换 2316829671 发表于 2019-4-12 16:16
为什么不在if语句里交换,像这样
需要找到后面还未排序的所有数据中最大的或最小的后再进行交换放在最前面,而不是每一次比较就交换一次(需要找到最大或最小的数才做交换)。 2316829671 发表于 2019-4-12 16:16
为什么不在if语句里交换,像这样
就像冒泡排序了吧
页:
[1]