zoukankan      html  css  js  c++  java
  • 插入排序冒泡排序基本排序算法(冒泡排序,选择排序,插入排序)

    改章节笔者在深圳喝咖啡的时候突然想到的...这段时间就有想写几篇关于插入排序冒泡排序的文章,所以回家到之后就奋笔疾书的写出来发表了

        每日一道理
    聪明人学习,像搏击长空的雄鹰,仰视一望无际的大地;愚笨的人学习,漫无目的,犹如乱飞乱撞的无头飞蛾;刻苦的人学习,像弯弯的河流,虽有曲折,但终会流入大海;懒惰的人学习,像水中的木头,阻力越大倒退得越快。
    using System;
    using System.Diagnostics;
    
    namespace TestCArray
    {
        class Program
        {
            static void Main(string[] args)
            {
                CArray numbs = new CArray(10);
               
                Random rnd = new Random(10);
    
                for (int i = 0; i <= 9; i++)
                {
                    numbs.Insert(rnd.Next(0,10));
                }
    
                Console.WriteLine("Before sorting:");
                numbs.DisplayElements();
    
                Console.WriteLine("During sorting:");
                //numbs.BubbleSort();
                //numbs.SelectionSort();
                numbs.InsertionSort();
    
                Console.WriteLine("After sorting:");
                numbs.DisplayElements();
            }
        }
    
    
        public class CArray
        {
            private int[] arr;
            private int upper;
            private int numElements;
    
            public CArray(int size)
            {
                arr = new int[size];
                upper = size - 1;
                numElements = 0;
            }
    
            public void Insert(int item)
            {
                arr[numElements] = item;
                numElements++;
            }
    
            public void DisplayElements()
            {
                Console.Write("---->");
                for (int i = 0; i <= upper; i++)
                {
                    Console.Write(arr[i] + " ");
                }
                Console.WriteLine();
            }
    
            public void Clear()
            {
                for (int i = 0; i <= upper; i++)
                {
                    arr[i] = 0;
                }
    
                numElements = 0;
            }
    
            // 冒泡排序
            public void BubbleSort()
            {
                int temp;
    
                for (int outer = 0; outer <= upper; outer++)
                {
                    for (int inner = 0; inner < upper-outer; inner++)
                    {
                        if (arr[inner+1]<arr[inner])
                        {
                            temp = arr[inner + 1];
                            arr[inner + 1] = arr[inner];
                            arr[inner] = temp;
                        }
                    }
                    this.DisplayElements();
                }      
            }
    
            // 选择排序
            public void SelectionSort()
            {
                int temp;
                for (int outer = 0; outer < upper; outer++)
                {
                    for (int inner = outer+1; inner <= upper; inner++)
                    {
                        if (arr[outer] > arr[inner])
                        {
                            temp = arr[outer];
                            arr[outer] = arr[inner];
                            arr[inner] = temp;
                        }
                    }
                    this.DisplayElements();
                }
            }
    
            // 插入排序
            public void InsertionSort()
            {
                int inner, temp;
                for (int outer = 1; outer <= upper; outer++)
                {
                    temp = arr[outer];
                    inner = outer;
    
                    while (inner > 0 && arr[inner-1] >= temp)
                    {
                        arr[inner] = arr[inner - 1];
                        inner -= 1;
                    }
    
                    arr[inner] = temp;
    
                    this.DisplayElements();
                }
            }
        }
    
        
    }

    文章结束给大家分享下程序员的一些笑话语录: 问答
    Q:你是怎么区分一个内向的程序员和一个外向的程序员的? A:外向的程序员会看着你的鞋和你说话时。
    Q:为什么程序员不能区分万圣节和圣诞节? A:这是因为 Oct 31 == Dec 25!(八进制的 31==十进制的 25)

  • 相关阅读:
    NHibernate之(12):初探延迟加载机制
    NHibernate之(11):探索多对多关系及其关联查询
    NHibernate之(10):探索父子(一对多)关联查询
    NHibernate之(9):探索父子关系(一对多关系)
    NHibernate之(8):巧用组件之依赖对象
    NHibernate之(7):初探NHibernate中的并发控制
    NHibernate之(5):探索Insert, Update, Delete操作
    NHibernate之(6):探索NHibernate中的事务
    NHibernate之(4):探索查询之条件查询(Criteria Query)
    读写文件
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3041091.html
Copyright © 2011-2022 走看看