八大排序算法之简单选择排序
2015-11-05 19:19
274 查看
基本排序思想:: 在要排序的一组数中,选出最大(或者最小)的一个数与第一个位置的数字进行交换;然后在剩下的一组数中再找最大(或者最小)的与第二个位置进行交换,直到第n-1个元素(倒数第二个数)和第n个元素(最后一个数)比较为止,排序完成! |
#include<stdio.h> //选择一个最大值出来 int MaxKey(int a[], int m, int n) { int k; k= m; //k指向这段数组的第一个元素 for(int i= m+1; i<n; ++i){ //i从第二个元素开始遍历到n if(a[i]>a[k]) //如果这个元素比k指向的元素要大 k= i; //那么让k指向这个较大的 } return k; } void SelectSort(int a[], int n) { int key,tmp; for(int i= 0; i<n; i++){ key= MaxKey(a,i,n); //返回最大值的元素序号 if(key!= i) //如果key指向最大元素值不是i的话,交换key和i的位置 a[i]^=a[key]^=a[i]^=a[key];//交换 } } int main(void) { int a[10]; int n= 10; printf("\t请输入10个数字\n"); for(int i= 0; i<10; i++) scanf("%d",&a[i]); SelectSort(a,n); for(int j= 0; j<n; j++) printf("%3d ",a[j]); printf("\n"); return 0; }
相关文章推荐
- Objective-C 编程语言官网文档(五)-属性的声明
- 第四周第三天OC第四讲
- 内存分配以及指针处理的相关测试代码
- oracle归档的开启及关闭
- Linux软件安装与管理
- Dialog主题Activity实现自定义对话框效果
- 【小结】中缀表达式转后缀表达式
- SSH远程管理、参数讲解、xshell使用、scp,sftp,ssh命令(ssh两种方式的密钥验证方
- java面向对象8
- Generating Shaders From HLSL Fragments
- [C++11] 顺序存储的完全二叉树构造树形结构
- POJ---2418-Hardwood Species(字典树)
- C# 引用ref/out
- java面向对象7
- Android HandlerThread
- HLSL Attributes (Xbox 360)
- java面向对象6
- mysql order by注入技巧
- 如何查找苹果API
- Windows Server 创建环回网卡