unity C# 常用算法 和 算法复杂度

  • 时间:
  • 浏览:1
  • 来源:大发幸运飞艇APP下载_大发幸运飞艇APP官方

{

min = j;

//交换另1个 数的位置,在这里你也都需用单独写另1个 交换法律措施,在此调用就行了

}

list[i] = t;

{

}

{

list[i] = list[j]; //有时候把小的数赋给前另1个 ,保证每趟排序前面的最小

{

{

是相邻元素之间的比较和交换,两重循环O(n2);很多,有时候另1个 相邻元素相等,是无需交换的。很多它是这俩 生活稳定的排序法律措施

for (j = i + 1; j < list.Length; j++)

public class SelectionSorter

{

for (int i = 1; i < list.Length; ++i)

list[j] = temp; //有时候把临时位置的那个大数赋给后另1个

// private int m=0;

每个元素都与第另1个 元素相比,产生交换,两重循环O(n2);举个栗子,5 8 5 2 9,第一遍时候,2会与5交换,没法 原序列中另1个 5的顺序就被破坏了。很多都不 稳定的排序算法

public void Sort(int[] list)

list[j] = t;

int t = list[min];

}

temp = list[i]; //把大的数插进另1个 临时存储位置

for (int j = i + 1; j < list.Length; ++j)

if (list[j] < list[min])

}

public void PopSort(int[] list)

{

归并排序、冒泡排序、插入排序。基数排序是稳定的

}

(1)冒泡排序:

}

1、稳定性

/// 插入排序

{

2、时间比较复杂度

最基础的十个 算法:冒泡、挑选、插入、快排中,快排的时间比较复杂度最小O(n*log2n),有时候 都不 O(n2)

min = i;

int j = i;

/// 挑选排序

private int min;

{

list[min] = list[i];

///

(3)插入排序:

挑选排序、快速排序、希尔排序、堆排序是不稳定的

///

if (list[i] > list[j]) //有时候第十个 小于第另1个 数

}

for (i = 0; i < list.Length - 1; i++)

(2)挑选排序:

{

}

// Console.WriteLine("{0}",list[i]);

int i, j, temp; //先定义一下要用的变量

list[j] = list[j - 1];

}

///

while ((j > 0) && (list[j - 1] > t))

{

}

public class InsertionSorter

int t = list[i];

public void Sort(int[] list)

{

--j;

插入排序是在另1个 有时候有序的小序列的基础上,一次插入另1个 元素。开始英语 英文你这俩 小序列只富含第另1个 元素,事件比较复杂度O(n2)。比较是从你这俩 小序列的末尾开始英语 英文的。你还都可以插入的元素和小序列的最大者开始英语 英文比起,有时候比它大则直接插在其中间,有时候总是往前找它该插入的位置。有时候遇见了另1个 和插入元素相等的,则把插入元素插进你这俩 相等元素的中间。很多相等元素间的顺序没法 改变,是稳定的。

///

for (int i = 0; i < list.Length - 1; ++i)

3.排序算法的思想:

}

}

// public enum comp {COMP_LESS,COMP_EQUAL,COMP_GRTR};