zoukankan      html  css  js  c++  java
  • Array数组集合的排序

    /*
                   #########                       
                  ############                     
                  #############                    
                 ##  ###########                   
                ###  ###### #####                  
                ### #######   ####                 
               ###  ########## ####                
              ####  ########### ####               
             ####   ###########  #####             
            #####   ### ########   #####           
           #####   ###   ########   ######         
          ######   ###  ###########   ######       
         ######   #### ##############  ######      
        #######  #####################  ######     
        #######  ######################  ######    
       #######  ###### #################  ######   
       #######  ###### ###### #########   ######   
       #######    ##  ######   ######     ######   
       #######        ######    #####     #####    
        ######        #####     #####     ####     
         #####        ####      #####     ###      
          #####       ###        ###      #        
            ###       ###        ###              
             ##       ###        ###               
    __________#_______####_______####______________
    
        身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
                    我们的未来没有BUG              
    * ==============================================================================
    * Filename: Array
    * Created:  2017/5/3
    * Author:   ShangHai WangYuChen
    * ==============================================================================
    */
    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    
    public class Array : MonoBehaviour {
        List<int> list = new List<int>() { 11,5,9,33,15,32,15};
        /// <summary>
        /// 直接插入排序
        /// </summary>
        /// <param name="list"></param>
        public static void InsertSort(List<int> list) {
            //从第二个数开始循环, 循环n-1次
            for (int i = 1; i < list .Count; i++)
            {
                //将待排序的数拿出来, 以便后面挪位子
                int temp = list[i];
                //j就是最后确定的那个最大/最小数的下标
                int j = i;
                while (j>=1&&temp <list[j-1])
                {
                    //将满足条件的数据向后移动一位, 腾空位, 为插入挪位子
                    list[j] = list[j - 1];
                    j--;
                }
                list[j] = temp;
            }
        }
        /// <summary>
        /// 希尔排序
        /// </summary>
        /// <param name="list"></param>
        public static void ShellSort(List<int> list) {
            int step = list.Count / 2;
            while (step>=1)
            {
                for (int i = step; i < list.Count; i++)
                {
                    int temp = list[i];
                    int j = i;
                    while (j>=step&&temp>list[j-step])
                    {
                        list[j] = list[j - step];
                        j -= step;
                    }
                    list[j] = temp;
                }
                step = step / 2;
            }
        }
        /// <summary>
        /// 直接选择排序
        /// </summary>
        /// <param name="list"></param>
        public static void SelectionSort(List<int> list) {
            for (int i = 0; i < list.Count -1; i++)
            {
                //假设tempIndex的下标的值最小
                int tempIndex = i;
                for (int j = i+1; j < list.Count; j++)
                {
                    //如果tempIndex下标的值大于j下标的值,则记录较小值下标j
                    if (list [tempIndex]>list [j])
                    {
                        tempIndex = j;
                    }
                }
                //最后将假想最小值跟真的最小值进行交换
                int temp = list[tempIndex];
                list[tempIndex] = list[i];
                list[i] = temp;
            }
        }
        /// <summary>
        /// 冒泡排序算法
        /// </summary>
        /// <param name="list"></param>
        public static void BubbleSort(List<int> list) {
            for (int i = 0; i < list.Count -1; i++)
            {
                for (int j = 1; j < list.Count ; j++)
                {
                    //如果前面一个数大于后面一个数则交换
                    if (list [j-1]>list [j])
                    {
                        int temp = list[j - 1];
                        list[j - 1] = list[j];
                        list[j] = temp;
                    }
                }
            }
        }
        /// <summary>
        /// 冒泡排序算法(自己喜欢常用的冒泡排序)
        /// </summary>
        /// <param name="list"></param>
        public static void loveSort(List<int> list)
        {
            for (int i = 0; i < list.Count; i++)
            {
                for (int j = i+1; j < list.Count; j++)
                {
                    //如果前面一个数大于后面一个数则交换
                    if (list[i] > list[j])
                    {
                        int temp = list[i];
                        list[i] = list[j];
                        list[j] = temp;
                    }
                }
            }
        }
    
        void Start () {
            // InsertSort(list);
            //ShellSort(list);
            //SelectionSort(list);
            //BubbleSort(list);
            loveSort(list);
            for (int i = 0; i < list.Count; i++)
            {
                Debug.Log("第"+i+"是:"+list [i]);
            }
        }	
    }
    

      

  • 相关阅读:
    centos linux系统日常管理3 服务管理ntsysv,chkconfig,系统日志rsyslog,last ,lastb ,exec,xargs,dmesg,screen,nohup,curl,ping ,telnet,traceroute ,dig ,nc,nmap,host,nethogs,base64,jq 第十六节课
    centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课
    一个兼职DBA的数据库运维经验 小米科技 xx@xiaomi.com 2011
    centos Linux系统日常管理1 cpuinfo cpu核数 命令 w, vmstat, uptime ,top ,kill ,ps ,free,netstat ,sar, ulimit ,lsof ,pidof 第十四节课
    HTML5矢量实现文件上传进度条
    基于HTML5的WebGL呈现A星算法3D可视化
    基于HTML5的WebGL呈现A星算法的3D可视化
    基于HTML5的WebGL设计汉诺塔3D游戏
    基于HTML5树组件延迟加载技术实现
    基于HTML5的WebGL电信网管3D机房监控应用
  • 原文地址:https://www.cnblogs.com/mclll520/p/6802430.html
Copyright © 2011-2022 走看看