排序算法(C实现)--------- 简单选择排序
来源:互联网 发布:snailsvn mac 怎么用 编辑:程序博客网 时间:2024/06/04 23:47
选择排序的基本思想是:每一趟在n-i (i = 0,1,2,....,n-2)个记录中选取关键字最小的记录作为有序列序列中第i个记录。其中最简单且最熟悉的是简单选择排序。
一趟简单选择排序的操作为:通过n-i次关键字之间的比较,从n-i个记录中选出关键字最小的记录,并和第i个记录交换。
主要步骤:
1. 求出n-i个关键字中最小的记录。
2. 将该最小的记录与当前第i个记录交换
//从记录中选择出最小元素的位置int selectMinKey(ElemType array[],int i,int length){int index,minLoc;ElemType minKey = array[i];minLoc = i;for(index = i+1; index < length;index++){if(minKey > array[index]){minKey = array[index];minLoc = index;}}return minLoc;}//直接选择排序void select_sort(ElemType array[],int length){ElemType median;int i,minLoc;for(i = 0;i < length - 1;i++){minLoc = selectMinKey(array,i,length);if(i != minLoc){median = array[i];array[i] = array[minLoc];array[minLoc] = median;}}}
容易看出,简单选择排序过程中,所需进行记录移动的操作次数较少,其最小值为“0”,最大值为3(n-1)。然而,无论记录的初始排列如何,所需进行关键字之间的比较次数相同,均为n(n-1)/2,因此,总的时间复杂度也是O(n2)
0 0
- 排序算法(C实现)--------- 简单选择排序
- 【算法】简单选择排序C语言实现
- C语言实现基本排序算法----排序(直接插入排序,SHELL排序,冒泡排序,快速排序,简单选择排序,堆排序)
- 简单选择排序(C & Java 实现)
- 简单选择排序(C语言实现)
- 简单选择排序(C/C++实现)
- 【排序算法】简单选择排序(java实现)
- 排序算法系列---简单选择排序(C++)
- 排序算法--选择排序(简单选择排序、堆排序)java实现
- java实现排序算法之选择排序(简单选择排序和堆排序)
- 用php实现选择排序(简单排序)算法
- 简单排序算法:简单选择排序(选择排序)
- 排序之三:简单选择排序(C语言实现)
- C语言简单选择排序算法的实现
- 排序算法之选择排序(C语言实现)
- 排序算法总结(简单选择排序、堆排序)(python实现)
- [排序算法,选择排序]--简单选择排序
- 排序算法(二)简单选择排序
- Java开发中的23种设计模式详解
- pflua:用Lua编写的高性能网络包过滤工具箱
- C# WinFrom捕获按键按下事件(一)
- NSNotification的使用
- 【LeetCode】Jump Game
- 排序算法(C实现)--------- 简单选择排序
- django-bootstrap集成
- JAVA学习第五课(排序+二分查找+查表法)
- 三步曲学Java socket编程
- SEO到底还能走多远
- JSON设置过滤属性
- django 结合bootstrap 的初探
- Codeforces Round #263 (Div. 2)-C. Appleman and Toastman
- 第一篇博文