/*简单快速排序假设以第一个数为最小数开始向后比较,如果找到了比这个数小的数,就记下这个数的下标,直到找完数组,将最后记下的最小值下标
与最外层循环(我们假设的最小值的下表值进行交换),然后开始下一次循环,知道整个数组排序完成,这样的排序就是从左向右,依次找出表中最小的值放在对应的位置
的一种排序方式*/
int temp3 = 0;
int t = 0;
{
t = i;
for (int j = i + 1; j < test3.Length; j++)
{
if (test3[t] > test3[j])
{
t = j;
}
}
temp3 = test3[t];
test3[t] = test3[i];
test3[i] = temp3;
}
算法时间复杂度分析:
最好情况:数组的记录全部排序好了,这时只有外层循环n-2次,时间复杂度O(n)
最坏情况:数组的记录与要排的顺序全部相反,时间复杂度O(n²)
时间效率在O(n)与O(n²)之间
直接插入排序算法的空间复杂度为O(1)