排序方法----选择排序
2016-06-24 11:07
190 查看
选择排序法程序:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void printfArray(inta[],int num)
{
inti=0;
for(i=0;i<num;i++ )
{
printf("%d ",a[i]);
}
}
//选择排序
//外层循环 当i=0时,让j从
1—N进行变化
//外层循环 当i=1时,让j从
2—N进行变化
//外层循环 当i=2时,让j从
3—N进行变化
//....N=7时
//外层循环 当i=5时,让j从
6—N进行变化
//结论:按照一个变量i不变,让另一个变量j进行变化,下一轮依次进行
voidsortArray( int a[],int num ) //从小到大排序
{
inti,j,temp;
for( i=0;i<num-1;i++) //外层循环
{
for( j=i+1;j<num;j++) //内层循环:a[i]和a[j]比较大小,把小的放前面
{
if( a[i]>a[j]) //把小的放到前面
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
//排序
void main()
{
inti=0,j=0;
inttemp=0,num=0;
inta[]={33,654,4,455,6,33,4};
num=sizeof(a)/sizeof(a[0]);
printf("排序前:");
printfArray(a,num);
printf("\n");
sortArray(a,num);
printf("排序后:");
printfArray(a,num);
printf("\n");
system("pause");
return;
}
Some Tips:
1、数组做函数参数,会退化为一个指针
2、把数组的内存首地址以及数组长度作为函数参数即可。
3、实参的a和形参的a的数据类型本质不一样
4、形参中的数组,编译器会把它优化为指针(C语言特色),指针类型为其定义的数据类型,决定了为其分配的内存空间大小。
5、形参写在函数声明括号内,和写在函数体内是一样的,只不过具有对外属性而已。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void printfArray(inta[],int num)
{
inti=0;
for(i=0;i<num;i++ )
{
printf("%d ",a[i]);
}
}
//选择排序
//外层循环 当i=0时,让j从
1—N进行变化
//外层循环 当i=1时,让j从
2—N进行变化
//外层循环 当i=2时,让j从
3—N进行变化
//....N=7时
//外层循环 当i=5时,让j从
6—N进行变化
//结论:按照一个变量i不变,让另一个变量j进行变化,下一轮依次进行
voidsortArray( int a[],int num ) //从小到大排序
{
inti,j,temp;
for( i=0;i<num-1;i++) //外层循环
{
for( j=i+1;j<num;j++) //内层循环:a[i]和a[j]比较大小,把小的放前面
{
if( a[i]>a[j]) //把小的放到前面
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
}
//排序
void main()
{
inti=0,j=0;
inttemp=0,num=0;
inta[]={33,654,4,455,6,33,4};
num=sizeof(a)/sizeof(a[0]);
printf("排序前:");
printfArray(a,num);
printf("\n");
sortArray(a,num);
printf("排序后:");
printfArray(a,num);
printf("\n");
system("pause");
return;
}
Some Tips:
1、数组做函数参数,会退化为一个指针
2、把数组的内存首地址以及数组长度作为函数参数即可。
3、实参的a和形参的a的数据类型本质不一样
4、形参中的数组,编译器会把它优化为指针(C语言特色),指针类型为其定义的数据类型,决定了为其分配的内存空间大小。
5、形参写在函数声明括号内,和写在函数体内是一样的,只不过具有对外属性而已。
相关文章推荐
- Java使用选择排序法对数组排序实现代码
- javascript排序算法
- 排序算法--选择排序法
- 选择排序法
- (c语言)选择排序法和冒泡排序法
- 选择排序法
- 选择排序法
- 选择排序法
- Python选择排序
- 经典排序算法 - 选择排序Selection sort
- 第三章 ALDS1_2_B:Selection Sort 选择排序法
- JavaSE基础 - 数组排序之选择排序
- 选择排序法 冒泡排序法
- C语言选择排序法排序
- 数组元素排序:选择法&冒泡法
- 选择排序法
- Java冒泡排序法和选择排序法的实现
- 聊聊 tcpdump 与 Wireshark 抓包分析
- java中字母
- Nginx 模块自主开发四: 模块数据结构