zoukankan      html  css  js  c++  java
  • 选择排序的C、C++实现

    一、选择排序

    选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。

    二、程序实现

    1.先是根据自己的思路写了下面的程序,后来发现和网上好多例子都不一样,元素交换的次数太多,很多是无意义的交换,还是把程序放在这儿做个参考,应该算是个不标准的选择排序。

    #include<iostream>
    using namespace std;
     
    const int BUFFSIZE = 6;
    void Selection_Sort(int Arr[]);
    
    int main()
    {
    	int Arr[BUFFSIZE] = { 5,4,89,10,7,100};  //待排序元素
    	Selection_Sort(Arr);
    	return 0;
    }
    
    // 选择排序
    void Selection_Sort(int Arr[])
    {
    	for (int i = 0; i < BUFFSIZE - 1; i++)
    	{
    		for (int j = i + 1; j < BUFFSIZE; j++)
    		{
    			if (Arr[i] < Arr[j])  // 将大的元素移到前面
    			{
    				int tmp = Arr[i];
    				Arr[i] = Arr[j];
    				Arr[j] = tmp;
    			}
    		}
    	}
        //输出排序后的元素
    	for (int i = 0; i < BUFFSIZE; i++)
    	{
    		cout << Arr[i] << " ";
    	}
    	cout << endl;
    }
    
    
    1. 这个应该是比较标准的选择排序算法,每一轮排序先是记住没排序的元素中最大的元素的索引,然后把它交换到前面来。
    #include<iostream>
    using namespace std;
     
    const int BUFFSIZE = 6;
    void Selection_Sort(int Arr[]);
    
    int main()
    {
    	int Arr[BUFFSIZE] = { 5,4,89,10,7,100}; //待排序元素
    	Selection_Sort(Arr);
    
    	return 0;
    }
    
    // 选择排序,从大到小排序
    void Selection_Sort(int Arr[])
    {
    	for (int i = 0; i < BUFFSIZE-1 ; i++)  
    	{
    		int index = i;
    		for (int j = i + 1; j < BUFFSIZE; j++)
    		{			
    			if (Arr[index] < Arr[j])
    			{
    				index = j;  //记录待排序元素中最大值的索引		 		
    			}
    		}
    		if (i != index)  // 将最大值移到前面
    		{
    			int tmp = Arr[i];
    			Arr[i] = Arr[index];
    			Arr[index] = tmp;
    		}
    	}
         //输出排序后的元素
    	for (int i = 0; i < BUFFSIZE; i++)
    	{
    		cout << Arr[i] << " ";
    	}
    	cout << endl;
    }
    
    
  • 相关阅读:
    互联网测试开发面试题集锦【转】
    python excel读写数据
    基于python实现Oracle数据库连接查询操作
    基于python实现GET和POST请求及token相关调用
    Notepad++配置替换快捷配置
    GET和POST两种基本请求方法的区别
    HTTP请求的常用方法有哪些
    常见HTTP状态码的含义
    在浏览器中输入URL后,执行的全部过程。(一次完整的http请求过程)
    TCP和UDP的优缺点及区别
  • 原文地址:https://www.cnblogs.com/ay-a/p/9825892.html
Copyright © 2011-2022 走看看