码迷,mamicode.com
首页 > 编程语言 > 详细

算法二:选择排序

时间:2016-02-26 14:11:14      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:

选择排序:选择一个最大或者最小的元素放到起始位置,直到排完为止。(不稳定)

如有一组数据:3,6,2,1,9

->1,6,2,3,9

->1,2,6,3,9

->1,2,3,6,9

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7         int a [] = {3,2,1,6,9};
 8         int min;
 9         for(int i = 0;i < sizeof(a)/4-1;i++)
10         {
11               min = i;
12               for(int j = i+1; j <sizeof(a)/4;j++)
13               {
14                      if(a[i] > a[j])
15                                min = j;
16               }
17               if(min != i)
18               {
19                   int temp = a[min];
20                   a[min] = a[i];
21                   a[i] = temp;
22               }
23         }
24        for(int i = 0; i<sizeof(a)/4;i++)
25               printf("%d   ",a[i]);
26 }                                 

简单排序的时间复杂度为O(N2);空间复杂度为O(1)选择排序是一种不稳定的排序.

算法二:选择排序

标签:

原文地址:http://www.cnblogs.com/xiaoma123/p/5220023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!