选择法排序
原理示意:
{2 4 3 6 1 8 7 9 0 5} //初始
//在第1个到第10个元素间找到最小的, 与第1个元素交换
0{ 4 3 6 1 8 7 9 2 5}
//在第2个到第10个元素间找到最小的, 与第2个元素交换
0 1{ 3 6 4 8 7 9 2 5}
//如此继续下去
.....
===================选择法排序 by claydodo======================
原理示意:
{2 4 3 6 1 8 7 9 0 5} //初始
//在第1个到第10个元素间找到最小的, 与第1个元素交换
0{ 4 3 6 1 8 7 9 2 5}
//在第2个到第10个元素间找到最小的, 与第2个元素交换
0 1{ 3 6 4 8 7 9 2 5}
//如此继续下去
.....
===================选择法排序 by claydodo======================
- #include <stdio.h>
- #define ARRAY_SIZE 10
- int main()
- {
- //Input the array
- int array[ARRAY_SIZE];
- printf("Please input %d integer numbers: ", ARRAY_SIZE);
- int i;
- for(i=0;i<ARRAY_SIZE;i++)
- scanf("%d", &array[i]);
- int index_now;
- for(index_now=0; index_now < ARRAY_SIZE-1; index_now++)
- {
- int index_min=index_now;
- int index_searching;
- //Find the minimal one in { array[index_now] ~ array[ARRAY_SIZE-1] }
- for(index_searching=index_now; index_searching < ARRAY_SIZE; index_searching++)
- {
- if(array[index_searching]<array[index_min])
- index_min=index_searching;
- }
- //Swap array[index_now] and array[index_min]
- if(index_min != index_now)
- {
- int temp;
- temp=array[index_now];
- array[index_now]=array[index_min];
- array[index_min]=temp;
- }
- }
- //Output the result
- for(i=0;i<ARRAY_SIZE;i++)
- printf("%d ",array[i]);
- printf("/n");
- return 0;
- }