#include <iostream>
using std::cout;
using std::endl;
/** Selection Sort**/
int findMaxItemIndex(int dataList[], int leftPos, int rightPos)
{
int maxPos = leftPos;
int currentPos= leftPos;
while(++currentPos < rightPos)
{
if(dataList[currentPos] > dataList[maxPos])
{
maxPos = currentPos;
}
}
return maxPos;
}
void selection_sort(int dataList[], int count)
{
int i;
for(i=count-1; i>0; --i)
{
int curMaxPos = findMaxItemIndex(dataList, 0, i);
if(curMaxPos != i)
{
int temp = dataList[i];
dataList[i] = dataList[curMaxPos];
dataList[curMaxPos] = temp;
}
}
}
int main()
{
const int count = 10;
int data[count] = {7,2,6,4,0,9,5,1,3,8};
selection_sort(data, count);
for(int i = 0; i< count; i++)
{
cout<<data[i]<<endl;
}
getchar();
}
#include <iostream>
using std::cout;
using std::endl;
/** Selection Sort**/
int findMaxItemIndex(int dataList[], int leftPos, int rightPos)
{
int maxPos = leftPos;
int currentPos= leftPos;
while(++currentPos < rightPos)
{
if(dataList[currentPos] > dataList[maxPos])
{
maxPos = currentPos;
}
}
return maxPos;
}
void selection_sort(int dataList[], int count)
{
int i;
for(i=count-1; i>0; --i)
{
int curMaxPos = findMaxItemIndex(dataList, 0, i);
if(curMaxPos != i)
{
int temp = dataList[i];
dataList[i] = dataList[curMaxPos];
dataList[curMaxPos] = temp;
}
}
}
int main()
{
const int count = 10;
int data[count] = {7,2,6,4,0,9,5,1,3,8};
selection_sort(data, count);
for(int i = 0; i< count; i++)
{
cout<<data[i]<<endl;
}
getchar();
}
分享到:
相关推荐
选择排序 冒泡排序 插入排序 合并排序 快速排序算法原理及代码实现 不同排序算法时间效率的经验分析方法 验证理论分析与经验分析的一致性 当面临巨大数据量的排序的时候,还是优先选择合并排序算法和快速排序算法。...
C语言算法之归并排序C语言算法之归并排序C语言算法之归并排序C语言算法之归并排序
算法作业的线性选择排序 算法作业的线性选择排序 算法作业的线性选择排序
呵呵,传上来供大家学习使用~8种排序算法 包括:选择排序 冒泡排序 快速排序 等~~
C++排序算法之选择排序源码
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
Verilog/C++实现排序算法:Verilog/C++实现排序算法:冒泡排序、选择排序、并行全比较排序、串行全比较排序。
常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结常用排序算法总结
排序算法排序算法排序算法排序算法排序算法排序算法排序算法
该程序包含7大排序算法: # sort.bubbleSort() #冒泡排序 # sort.shellSort() #希尔排序 ...该排序算法把每次的排序结果都列出来,可供初学者学习。 self.arr存放的是待排序列表,可改成自己的数据
7大排序算法(快速排序,冒泡排序,选择排序,归并排序,插入排序,希尔排序,堆排序)实现源码
一个堆排序算法 c++写的 逻辑相同 可自行 改为java 写一个堆排序算法 c++ 写一个堆排序算法 c++ 写一个堆排序算法 c++ 写一个堆排序算法 c++ 写一个堆排序算法 c++ 写一个堆排序算法 c++ 写一个堆排序算法 c++ 写一...
C# 常用经典算法,选择排序 冒泡排序 快速排序 插入排序 希尔排序
关于c#的一些算法 选择排序 冒泡排序 快速排序 插入排序 希尔排序 归并排序 基数排序 计数排序。。。
以单链表为存储结构实现简单选择排序的算法
希尔排序,冒泡排序、快速排序递归排序,快速排序非递归排序,快速排序改进算法
排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档排序算法归档
js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js排序算法动态显示js...
1. 熟练运用冒泡排序、选择排序、插入排序、希尔排序、快速排序、合并排序、堆排序等七种常见的内排序算法 2. 使用不同的数据结合计算各种算法的运行时间,验证算法的时间复杂性 3. 能够运用二路归并算法进行外排序 ...
文档包含:排序算法:选择排序排序算法,插入排序排序算法,对半插入排序排序算法,冒泡排序排序算法,堆排序排序算法。