program.cs
来自「用近似算法计算最大选择数」· CS 代码 · 共 109 行
CS
109 行
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Collections;
namespace selectionMax
{
class Program
{
public const int Num = 10000;
public int[] data = new int[Num];
public void generateData()
{
StreamWriter sw = new StreamWriter("data.txt");
Random ra = new Random();
for (int i = 0; i < Num; i++)
data[i] = ra.Next();
for (int i = 0; i < Num; i++)
sw.WriteLine(data[i]);
sw.Close();
}
public void quicksotr( int first, int last)
{
int pos =0;
int bigin = 0;
if (first < last)
{
while (pos != 17)
{
pos = split(first, last);
first++;
swap(bigin, first);
if (first == last)
break;
}
// quicksotr(first,pos-1);
// quicksotr(pos + 1, last);
Console.WriteLine(pos.ToString()+"\t"+first.ToString());
}
}
public int split( int first, int last)
{
int pivot = data[first];
int left = 0;
int right = last;
while (left < right)
{
while (pivot < data[right])
right--;
while (left < right && pivot > data[left] || data[left] == pivot)
left++;
if (left < right)
swap(left, right);
}
int pos = right;
data[first] = data[pos];
data[pos] = pivot;
return pos;
}
void swap(int left, int right)
{
int temp;
temp = data[left];
data[left] = data[right];
data[right] = temp;
}
void testSlect()
{
}
static void Main(string[] args)
{
DateTime dt = DateTime.Now;
int count = 0;
StreamWriter sw = new StreamWriter("result.txt");
Program sl = new Program();
while (count < 1)
{
count++;
sl.generateData();
int len = sl.data.Length;
sl.quicksotr(0, len - 1);
for (int i = 0; i < Num; i++)
sw.WriteLine(sl.data[i]);
sw.WriteLine("this is another data");
//sw = File.Create("data.txt");
}
DateTime du = DateTime.Now;
Console.WriteLine("use m for second{0:%s}",du-dt);
sw.Close();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?