//冒泡排序,a数组,n数组的大小(O(N^2))
static void MaoPaoSort(int[] a, int n)
{
if (n <= 1) return;
//冒泡排序的标志位
bool flag = false;
int temp = a[0];
for (int i = 0; i <= n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (a[j] < a[j+1])
{
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
//表示有数据交换
flag = true;
}
}
if (!flag) break;//没有数据交换,直接跳出排序
}
for (int i = 0; i < n; i++)
{
Debug.Log(a[i]);
}
}
//插入排序:选择未排区间中的元素,在已排序元素中找到适当的位置插入O(N^2)
static void ChaRuSort(int[] a, int n)
{
if (n < 1) return;
//遍历数组
for (int i = 1; i < n; ++i)
{
//未排序数据
int value = a[i];
//已排数组区间
int j = i-1;
//遍历一排数组元素,从后开始遍历
for (; j >= 0 ; --j)
{
//当找到比未排序数据大的数据时,开始往后移动一位
if (a[j] > value)
{
//移动一位
a[j + 1] = a[j];
}else
{
break;
}
}
//将数据插入到已排序数组中
a[j + 1] = value;//插入数据
}
for (int i = 0; i < n; i++)
{
Debug.Log(a[i]);
}
}
排序
最新推荐文章于 2024-11-28 13:35:01 发布