简单排序的几种方式
冒泡排序
运行方式
外层for循环定义循环最大上限,每次循环下减
内层for循环,从0到外层循环的最大值,进行遍历
核心:if 条件判断,将相邻的两个数组进行交换```
```class Change {
public Change(int[] arr) {
for (int i = arr.Count() - 1; i >= 0; i--) //减1为了防止数组下标越界`
{
for (int j = 0; j < i; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
foreach (int item in arr){
Console.Write(item+" ");
}
}
}
class Program
{
static void Main(string[] args)
{
int[] arr = { 10, 20, 55, 77, 1, 5 };
Change a = new Change(arr);
Console.ReadKey();
}
}
插入排序
运行方式
从前面挑出一个数 ,与被挑出数的前一个进行比较,假如小于前面的数,则交换位置,前面的所有数都和这个数作比较,假如都小于这个数,则跳过循环,进行下一次循环。
class Program
{
static void Main(string[] args)
{
int[] arr = { 10, 20, 55, 77, 1, 5 };
Change a = new Change(arr);
Console.ReadKey();
}
}
class Change {
public Change(int[] arr) {
for (int i = 1; i < arr.Length; i++)
for (int j = i; j > 0; j--)
{
if (arr[j] < arr[j - 1])
{
int temp = 0;
temp = arr[j];
arr[j] = arr[j - 1];
arr[j - 1] = temp;
}
}
foreach (int item in arr)
{
Console.Write(item + " ");
}
}
}
}
```csharp
在这里插入代码片