选择排序之一 简单选择排序

      简单选择排序(Simple Selection Sort),一趟简单选择排序的操作为:通过n - i 次关键字间的比较,从n - i + 1个记录中选出关键字最小的记录,并和第i(1 <= i <= n)个记录交换之。时间复杂度为O(n^2)

复制代码
  
  
// 简单选择排序 void CSelectionSort::SimpleSelectionSort( void ) { const int count = 9 ; int L[count] = { 0 , 49 , 38 , 65 , 97 , 76 , 13 , 27 , 49 }; for ( int i = 0 ; i < count; ++ i) { int j = SelectMinKey(L, count, i); if (i != j) { int temp = L[i]; L[i] = L[j]; L[j] = temp; } } // 打印排序结果。 for ( int i = 0 ; i < count; ++ i) { cout << L[i] << " \t " ; } cout << endl; } // 简单选择排序之选最小值 int CSelectionSort::SelectMinKey( int L[], int count, int i) { int index = i; for ( int j = i + 1 ; j < count; j ++ ) { if (L[j] < L[index]) index = j; } return index; }
复制代码

      简单选择排序是每次都要选取待排序序列里面,记录关键值最小的元素索引。然后和本次待排序序列的第一个元素交换。而起泡排序是只要发现相临的两个元素逆序就交换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值