zoukankan      html  css  js  c++  java
  • 简单选择排序

    简单选择排序的基本思想:

    第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;
    第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;
    第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。

    以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列:
      初始序列:{ 49 27 65 97 76 12 38}
    第1趟:12与49交换:12 { 27 65 97 76 49 38 }
    第2趟:27不动 :12 27 { 65 97 76 49 38 }
    第3趟:65与38交换:12 27 38{ 97 76 65 49}
    第4趟:97与49交换:12 27 38 49{ 97 76 65 }
    第5趟:76与65交换:12 27 38 49 65{ 97 76 }
    第6趟:97与76交换:12 27 38 49 65 76 97 

    代码:
    #include<iostream>
    using namespace std;
    
    //升序
    void SelectSortUpNumOne(int array[], size_t size)  //参数一接受数组,参数二接受数组元素个数
    {
    	for (int i = 0; i < size-1; ++i)
    	{
    		int index = i;                      //假设数组第一个数就是最小的;无序序列的第一个
    		for (int j = index+1; j < size; ++j)
    		{
    			if (array[j] < array[index])    //每一趟中,把无序序列中最小的和第一个数交换;
    			{
    				swap(array[index],array[j]);//缺点是 交换的次数太多
    			}
    		}
    	}
    
    }
    
    //升序
    void SelectSortUpNumTwo(int array[], size_t size)  //参数一接受数组,参数二接受数组元素个数
    {
    	for (int i = 0; i < size - 1; ++i)
    	{
    		int index = i;                      //假设数组第一个数就是最小的;
    		for (int j = index + 1; j < size; ++j)
    		{
    			if (array[j] < array[index])    //每一趟中,把最小数下标的给第一个数下标;
    			{
    				index = j;                  //index始终都是最小下标
    			}
    		}
    		if (index != i)                     //每趟只用交换一次
    		{
    			int tmp = array[index];
    			array[index] = array[i];
    			array[i] = tmp;
    		}
    	}
    
    }
    int main()
    {
    <span style="white-space:pre">	</span>int a[10] = {9,2,5,8,4,1,6,7,3,0};
    	SelectSortUpNumOne(a, 10);
    	SelectSortUpNumTwo(a, 10);
    }



  • 相关阅读:
    腾讯QQ服务器汇总表 及禁用QQ方法
    C#下一个SQL SERVER数据库操作类
    获取页面运行时间以及数据库查询次数
    GridView导出Excel
    使用FileUpload控件上传图片并自动生成缩略图、带文字和图片的水印图
    JS图片loading及放大查看效果(兼容IE,FF)
    .NET 开发人员十个必备工具
    jsp日期时间格式化输出
    MyEclipse6.5与Perforce的集成
    [转]firefox与IE的nextSibling
  • 原文地址:https://www.cnblogs.com/melons/p/5791877.html
Copyright © 2011-2022 走看看