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. springboot中的那些连接池

    hello~各位读者新年好! 回想起前几天在部署springboot项目到正线时,线上环境要求jdk7,可项目是基于jdk8开发的,springboot也是用的springboot2以上的版本,可以说 ...

  2. Centos搭建PXE,安装部署操作系统

    centos系统搭建PXE网络安装centos+ubuntu+Windows Centos搭建PXE,安装部署操作系统 一 . 原理: 1.什么是PXE: PXE(Pre-boot Execution ...

  3. 将Ubuntu下网卡名称enss改为eth0

    将Ubuntu下网卡名称enss改为eth0   sudo nano /etc/default/grub 找到GRUB_CMDLINE_LINUX=""改为GRUB_CMDLINE ...

  4. MySQL 高可用之主从复制

    MySQL主从复制简介 Mysql的主从复制方案,都是数据传输的,只不过MySQL无需借助第三方工具,而是自带的同步复制功能,MySQL的主从复制并不是磁盘上文件直接同步,而是将binlog日志发送给 ...

  5. java容器(一) Collection类框架图解

  6. 转载: Java虚拟机:运行时内存数据区域、对象内存分配与访问

    转载:  https://blog.csdn.net/a745233700/article/details/80291694  (虽然大部分内容都其实是深入理解jvm虚拟机这本书里的,不过整理的很牛逼 ...

  7. 在vue中使用jquery

    首先默认你已经有了一个vue程序,如果你想在vue中使用jquery,那么请继续阅读. 当然,加入你没有一个vue程序,这里也给出创建一个vue程序的命令.当然,你肯定装了vue-cli,不然你不会点 ...

  8. 【vue_django】成功登录后,保存用户

    PS:使用session 保存: // 登录 login() { if (this.username === "" || this.password === "" ...

  9. python如何从内存地址上加载pythn对象

    python如何从内存地址上加载pythn对象 在python中我们可以通过id函数来获取某个python对象的内存地址,或者可以通过调用对象的__repr__魔术函数来获取对象的详细信息 def t ...

  10. 秒秒钟破解eval加密

    前言  准确的说eval处理过的代码应该叫做压缩代码,不过效果上算是加密过了一样!很多小伙伴不想直接让别人看到自己的js代码往往就会采取这样的处理措施.不过,其实这样的方法只能防御那些小白.对于真正的 ...