基本的排序算法之——选择排序法(对于固定的空间数组或者顺序表)
2015-04-20 09:39
225 查看
/********************************************************************** * Copyright (c)2015,WK Studios * Filename: * Compiler: GCC,VS,VC6.0 win32 * Author:WK * Time: 2015 4 20 ************************************************************************/ #include<stdio.h> void Change_Sort1(int *a,int len) { for(int i=0;i<len;i++) { int min=i; for(int j=i+1;j<len;j++) { if(a[j]<a[min]) min=j; } int temp=a[i]; a[i]=a[min]; a[min]=temp; } } //轻微优化 void Change_Sort2(int *a,int len) { for(int i=0;i<len;i++) { int min=i; for(int j=i+1;j<len;j++) { if(a[j]<a[min]) min=j; } if(min!=i)//这里优化可以减少交换,自己与自己不交换 { int temp=a[i]; a[i]=a[min]; a[min]=temp; } } } int main() { int a[]={1,3,5,2,9,6,8,7}; Change_Sort1(a,sizeof(a)/sizeof(a[0])); //Change_Sort2(a,sizeof(a)/sizeof(a[0])); for(int i=0;i<sizeof(a)/sizeof(a[0]);i++) { printf("%d ",a[i]); } return 0; }
相关文章推荐
- 基本的排序算法之——插入排序法(稳定)(对于固定的空间数组或者顺序表)
- 基本的排序算法之—— 冒泡排序(稳定)(对于固定的内存空间数组或顺序表,对于单链表也可以)
- C# 数组排序 基本算法
- 给定一个未排序的整数数组,找到第一个缺失的正整数 您的算法应在O(n)时间运行,并使用恒定空间。
- JAVA基础day04 数组学习 排序和查找基本算法
- 数组基本算法(最大值,最小值,总和,平均数,复制,反转,排序)
- C# 数组排序 基本算法 分类: C# 2014-09-25 15:43 129人阅读 评论(0) 收藏
- 基本算法-求最大子数组和 及其变种
- 基本的排序算法:冒泡排序、插入排序、希尔排序、选择排序、归并排序、快速排序、堆排序
- 【数据结构与算法】【排序】基本概念
- 算法--数组冒泡排序和选择排序原理分析
- 选择排序-基本算法
- 算法学习---基本数据类型的数组二分查找实现
- c++顺序表基本算法代码
- 数据结构和算法-002 数组排序 冒泡排序
- perl练习——FASTA格式文件中序列GC含量计算&perl数组排序如何获得下标或者键
- 教你几种排序的基本算法
- 建站或者网站搬家换空间的时候,企业站长最关心的一个问题是该如何选择网站空间,而这一问题对于一些擅长的站长来说非常小意思,但对于部分企业站长来说是一个比较头疼的问题。根据不完整数据显示,很多企业站长因为
- 9.11排序与查找(一)——给定两个排序后的数组A和B,其中A的末端有足够的缓冲空间容纳B。将B合并入A并排序
- 排序的几个基本算法