Skip to content

Instantly share code, notes, and snippets.

@bulentsiyah bulentsiyah/Program.cs
Last active Oct 20, 2017

Embed
What would you like to do?
Dosya Okuma ve Sıralı Şekilde Yazma (Hızlı Sıralama C# konsol) -- http://www.bulentsiyah.com/dosya-okuma-ve-sirali-sekilde-yazma-hizli-siralama-c-konsol/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;
namespace DosyaOkumaYazmaSiralama
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Dosyadan veri alma, veriyi dosyaya yazma \n Alınan veriyi sıralama uygulması (c# konsol)\n");
// Okunacak dosya isimi sorulacak. Exenin bulunduğu yerde olursa adres girmeye gerek kalmaz.
Console.Write("Okunacak metin belgesi dosyasının tam adını giriniz. Örnek oku.txt: ");
string strOkuDosya = "";
FileStream fsGiris;
StreamReader srGiris;
try
{
strOkuDosya = Console.ReadLine();
fsGiris = new FileStream(strOkuDosya, FileMode.Open, FileAccess.Read);
srGiris = new StreamReader(fsGiris);
}
catch
{
Console.WriteLine("Dosya bulunamadı...");
return;
}
ArrayList strYaziDizisi = new ArrayList();
string strSatir;
//Son satıra gelene kadar oku
while ((strSatir = srGiris.ReadLine()) != null)
{
// her geleni dizinin sonuna ekleme
strYaziDizisi.Add(strSatir);
}
srGiris.Close();
fsGiris.Close();
HizliSirala(strYaziDizisi, 0, strYaziDizisi.Count - 1);
// tüm satırları yazma
FileStream fsCikis = new FileStream("cikti.txt", FileMode.Create, FileAccess.Write);
StreamWriter srCikis = new StreamWriter(fsCikis);
for (int i = 0; i < strYaziDizisi.Count; i++)
{
// hedef dosyaya satır yazma
srCikis.WriteLine(strYaziDizisi[i]);
}
srCikis.Close();
fsCikis.Close();
// başarıyı kullanıcıya bildirme
Console.WriteLine("\nDosya okundu. Yazılar sırandı.\n cikti.txt dosyasına yazıldı.");
Console.ReadLine();
}
static void HizliSirala(ArrayList dizi, int baslangic, int bitis)
{
if (baslangic < bitis)
{
// Ayırma ve sıralama işlemi
int nAyirma = Bolme(dizi, baslangic, bitis);
HizliSirala(dizi, baslangic, nAyirma - 1);
HizliSirala(dizi, nAyirma + 1, bitis);
}
}// Hizli Sıralama ile bölmelere ayırma
static int Bolme(ArrayList Array, int baslangic, int bitis)
{
// İlk elemanı bulma
int nSol = baslangic + 1;
string strEksen = (string)Array[baslangic];
int nSag = bitis;
// Dizi elemanlarını bölme
string nGecici;
while (nSol <= nSag)
{
while (nSol <= nSag) { if (((string)Array[nSol]).CompareTo(strEksen) > 0)
break;
nSol = nSol + 1;
}
while (nSol <= nSag)
{
if (((string)Array[nSag]).CompareTo(strEksen) <= 0)
break;
nSag = nSag - 1;
}// Eğer uygunsa yer değiştirme işlemi yap
if (nSol < nSag)
{
nGecici = (string)Array[nSol];
Array[nSol] = Array[nSag];
Array[nSag] = nGecici;
nSol = nSol + 1;
nSag = nSag - 1;
}
}
nGecici = (string)Array[baslangic ];
Array[baslangic ] = Array[nSag];
Array[nSag] = nGecici;
return nSag;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.