基础算法之排序(2)--简单选择排序
2015-01-13 15:58
316 查看
/* purpose : data and struct algorithm study * title : select sort * author : ntsk13 * data: 2015.01.13 ****/ #include<stdio.h> #define LEN 10 void select_sort(int *array ,int n); int main() { int i=0; int data[LEN]={3,6,9,4,0,1,8,5,2,7}; printf("Before sort:\n"); for(i=0;i<LEN;i++){ printf("%d\t",data[i]); } printf("\n"); select_sort(data,LEN); printf("\nAfter sort:\n"); for(i=0;i<LEN;i++){ printf("%d\t",data[i]); } printf("\n\n"); return 0; } void select_sort(int *array ,int n) { int i=0,j=0,k=0,key=0,tmp=0; for(i=0;i<n;i++){ <span style="color:#ff0000;">key=i;</span> for(j=i+1;j<n;j++){ if(array[key] > array[j]) key=j; } if(key != i){ tmp=array[i]; array[i]=array[key]; array[key]=tmp; k++; } } printf("\n selectt sort sway %d times \n",k); }
====================================================================================================
基本思想: 从数据中选择最大/小的与第一个交换, 从生下的数据中选择一个最大/小的数据与第二个交换.
以此类推
相关文章推荐
- 黑马程序员—Java基础学习笔记之排序算法:选择排序&冒泡排序
- 算法基础之排序篇-选择排序
- 三种最简单基础的排序 选择排序 冒泡排序 直接插入排序 运用了函数指针数组
- 基础算法-直接选择排序
- 基础算法(一):选择排序和冒泡排序
- 数据结构与算法——三种基础排序算法C#实现(冒泡排序、选择排序、插入排序)
- 【算法学习】排序算法 - 简单选择排序
- 算法复习--------------基本算法:顺序查找,选择排序,冒泡排序算法等简单算法
- 简单选择排序的算法实现
- 【基础算法】选择排序与冒泡排序
- 基本算法简单实现-二分法查找、合并排序、冒泡排序、插入排序、选择排序、快速排序
- 【基础算法】排序-简单排序之四(Knuth洗牌算法)
- 【算法基础】冒泡、选择、插入排序(三种基本排序)
- 算法:简单选择排序
- 基础算法之四--排序: 之选择排序
- 基础算法之排序(2)--选择排序
- VC++实现选择排序算法简单示例
- 【基础算法】排序-简单排序之二(选择排序)
- 算法【5】:简单选择排序
- 排序算法---基础算法(冒泡排序,快速排序,选择排序,直接插入排序,桶排序)