首页 > 编程 > C++ > 正文

C++排序之直接选择排序法

2019-11-11 06:01:35
字体:
来源:转载
供稿:网友

直接选择排序算法是一种简单直观的排序算法。它首先在未排序序列中找到最小(大)元素,存放到排序序列的其起始位置,然后再从剩余未排序的序列元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素排序完毕。

代码实现如下:

#include <iostream>using namespace std;void PRint(int a[], int n ){  	cout<<n <<":";  	for(int j= 0; j<n; j++)      {  		cout<<a[j] <<" ";  	}  	cout<<endl;  }  void InsertSort(int a[], int len)  {  	for (int i=0; i<len-1; i++)  	{  		int k = i;  		int key = a[i];  		for (int j=i+1; j<len; j++)  //找出剩余数据中最小的数		{  			if (a[j]< key)  			{  				k = j;  				key = a[j];  			}  		}  		if (k!=i)  		swap(a[i], a[k]);  	}  }  int main(){  	int a[9] = {3,1,5,7,2,4,9,6,6};  	InsertSort(a,9);  	print(a,9);  }  排序结果如下:

     9:1 2 3 4 5 6 6 7 9

以上的算法是由小到大的排序方法,如果要由大到小排序,只需修改代码:if (a[j]< key) 为 if (a[j] > key) ,其他代码保持不变。


上一篇:C++初探类

下一篇:C++ 函数的递归调用

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选