static void Main(string[] args)
{
InsertionSortDemo();
Console.ReadLine();
} static void InsertionSortDemo()
{
Random rnd = new Random();
int[] arr = new int[];
for (int i = ; i < ; i++)
{
arr[i] = rnd.Next(, );
} Console.WriteLine("Raw data:");
foreach (var a in arr)
{
Console.Write(a + "\t");
} InsertionSort(arr);
Console.WriteLine("\n\n\nAfter insertion sort:");
foreach(var a in arr)
{
Console.Write(a + "\t");
}
} static void InsertionSort(int[] arr)
{
int inner, temp;
for (int outer = ; outer < arr.Length; outer++)
{
temp = arr[outer];
inner = outer;
while (inner > && arr[inner - ] >= temp)
{
arr[inner] = arr[inner - ];
inner--;
}
arr[inner] = temp;
}
} static void SelectSortDemo()
{
Random rnd = new Random();
int[] arr = new int[];
for (int i = ; i < ; i++)
{
arr[i] = rnd.Next(, );
} Console.WriteLine("Raw data:");
foreach (var a in arr)
{
Console.Write(a + "\t");
} SelectionSort(arr);
Console.WriteLine("\n\n\nAfter selection sort:");
foreach(var a in arr)
{
Console.Write(a + "\t");
}
} public void SelectSort(int[] arr)
{
int min;
for(int outer=;outer<=arr.Length;outer++)
{
min = outer;
for(int inner=outer+;inner<=arr.Length;inner++)
{
if(arr[inner]<arr[min])
{
min = inner;
}
}
if(min!=outer)
{
int temp = arr[min];
arr[min] = arr[outer];
arr[outer] = temp;
}
}
} static void SelectionSortDemo()
{
Random rnd = new Random();
int[] arr = new int[];
for (int i = ; i < ; i++)
{
arr[i] = rnd.Next(, );
} Console.WriteLine("Raw data:");
foreach (var a in arr)
{
Console.Write(a + "\t");
} int[] selectionArr = SelectionSort(arr);
Console.WriteLine("\n\nSelection sort:");
foreach(var a in selectionArr)
{
Console.Write(a + "\t");
}
} static int[] SelectionSort(int[] arr)
{
int min = ;
for(int i=;i<arr.Length-;i++)
{
min = i;
for(int j=i+;j<arr.Length;j++)
{
if(arr[j]<arr[min])
{
min = j;
}
} if (i != min)
{
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
return arr;
} static void BubbleDemo()
{
Random rnd = new Random();
int[] arr = new int[];
for(int i=;i<;i++)
{
arr[i] = rnd.Next(, );
} Console.WriteLine("Raw data:");
foreach(var a in arr)
{
Console.Write(a + "\t");
} int[] ascArr = BubbleSort(arr, true);
Console.WriteLine("\n\n\nAsc order:");
foreach(var a in ascArr)
{
Console.Write(a + "\t");
} int[] descArr = BubbleSort(arr, false);
Console.WriteLine("\n\n\nDesc order:");
foreach(var a in descArr)
{
Console.Write(a + "\t");
}
} static int[] BubbleSort(int[] arr,bool isAsc)
{
if(arr==null && arr.Length==)
{
return null;
} for(int i=;i<arr.Length;i++)
{
for(int j=i+;j<arr.Length;j++)
{
//Ascending
if(isAsc)
{
if(arr[i]>arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
//Descending
else
{
if(arr[i]<arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
return arr;
}

C# bubble sort,selection sort,insertion sort的更多相关文章

  1. 跳跃空间(链表)排序 选择排序(selection sort),插入排序(insertion sort)

    跳跃空间(链表)排序 选择排序(selection sort),插入排序(insertion sort) 选择排序(selection sort) 算法原理:有一筐苹果,先挑出最大的一个放在最后,然后 ...

  2. 《算法4》2.1 - 插入排序算法(Insertion Sort), Python实现

    排序算法列表电梯: 选择排序算法:详见 Selection Sort 插入排序算法(Insertion Sort):非常适用于小数组和部分排序好的数组,是应用比较多的算法.详见本文 插入排序算法的语言 ...

  3. Insertion Sort List Leetcode java

    题目: Sort a linked list using insertion sort. 题解: Insertion Sort就是把一个一个元素往已排好序的list中插入的过程. 初始时,sorted ...

  4. [Algorithms] Sorting Algorithms (Insertion Sort, Bubble Sort, Merge Sort and Quicksort)

    Recently I systematicall review some sorting algorithms, including insertion sort, bubble sort, merg ...

  5. [LeetCode] Insertion Sort List 链表插入排序

    Sort a linked list using insertion sort. 链表的插入排序实现原理很简单,就是一个元素一个元素的从原链表中取出来,然后按顺序插入到新链表中,时间复杂度为O(n2) ...

  6. 经典排序算法 – 插入排序Insertion sort

    经典排序算法 – 插入排序Insertion sort  插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕. 插入排序方法分直接插入排序和折半插入排序两种, ...

  7. leetcode Insertion Sort List

    题目:Sort a linked list using insertion sort. 代码: /** * Definition for singly-linked list. * struct Li ...

  8. 【leetcode】Insertion Sort List (middle)

    Sort a linked list using insertion sort. 思路: 用插入排序对链表排序.插入排序是指每次在一个排好序的链表中插入一个新的值. 注意:把排好序的部分和未排序的部分 ...

  9. 9. Sort List && Insertion Sort List (链表排序总结)

    Sort List Sort a linked list in O(n log n) time using constant space complexity.                   H ...

随机推荐

  1. 【洛谷4424】[HNOI_AHOI2018]寻宝游戏(我也不知道括号里该写啥)

    题目 洛谷 4424 分析 感觉思路比较神仙. 对于按位与和按位或两种运算,显然每一位是独立的,可以分开考虑. 对于某一位,「与 \(0\)」会将这一位变成 \(0\),「或 \(1\)」会将这一位变 ...

  2. java中常用的锁机制

    基础知识 基础知识之一:锁的类型 锁就那么几个,只是根据特性,分为不同的类型 锁的概念 在计算机科学中,锁(lock)或互斥(mutex)是一种同步机制,用于在有许多执行线程的环境中强制对资源的访问限 ...

  3. shell脚本快速配置yum源

    我们在使用Red Hat系列的Linux系统时经常要配置yum源,本文档提出一个快速配置yum源的方法,就是用shell脚本来实现. 我们在使用Red Hat系列的Linux系统时经常要配置yum源, ...

  4. Educational Codeforces Round 80 (Rated for Div. 2) E. Messenger Simulator

    可以推出 min[i]要么是i要么是1,当a序列中存在这个数是1 max[i]的话就比较麻烦了 首先对于i来说,如果还没有被提到第一位的话,他的max可由他后面的这部分序列中 j>=i 的不同数 ...

  5. copy and swap技巧与移动赋值操作符

    最近在实现一个Delegate类的时候碰到了一个问题,就是copy and swap技巧和移动赋值操作符有冲突. 比如有以下一个类: class Fun { public: Fun(const Fun ...

  6. JS-04-流程控制和循环

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. screen配置窗口显示

    screen的下方不显示,可以复制如下的代码 cd /root && vim .screenrc 贴上如下内容 hardstatus on hardstatus alwayslastl ...

  8. <背包>solution-CF118D_Caesar's Legions

    Caesar's Legions Gaius Julius Caesar, a famous general, loved to line up his soldiers. Overall the a ...

  9. Oracle 11g 单实例静默安装实战记录(linux)

    oracle 11g 单实例静默安装 AUTHOR:Oracle_Ran 环境规划: OS Version : Red Hat Enterprise Linux Server release 6.7 ...

  10. mplayer的参数

    播放文件 使用 MPlayer 播放媒体文件最简单的方式是: mplayer <somefile>  MPlayer 会自动检测文件的类型并加以播放,如果是音频文件,则会在命令行中显示该播 ...