Chinaunix首页 | 论坛 | 博客
  • 博客访问: 130094
  • 博文数量: 98
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 1017
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-11 13:22
文章分类

全部博文(98)

文章存档

2015年(25)

2014年(42)

2013年(31)

我的朋友

分类: C#/.net

2013-11-26 19:30:04

//选择排序 
class selectionsorter 

private int min 
public void sort(int[] arr) 

for (int i = 0 i < arr.length - 1 ++i) 

min = i 
for (int j = i + 1 j < arr.length ++j) 

if (arr[j] < arr[min]) 
min = j 

int t = arr[min] 
arr[min] = arr[i] 
arr[i] = t 


static void main(string[] args) 

int[] array = new int[] { 1 5 3 6 10 55 9 2 87 12 34 75 33 47 } 
selectionsorter s = new selectionsorter() 
s.sort(array) 
foreach (int m in array) 
console.writeline(" {0}" m) 


//冒泡排序 
class ebullitionsorter 

public void sort(int[] arr) 

int i j temp 
bool done = false 
j = 1 
while ((j < arr.length) & & (!done))//判断长度 

done = true 
for (i = 0 i < arr.length - j i++) 

if (arr[i] > arr[i + 1]) 

done = false 
temp = arr[i] 
arr[i] = arr[i + 1] //交换数据 
arr[i + 1] = temp 


j++ 

}

static void main(string[] args) 

int[] array = new int[] { 1 5 3 6 10 55 9 2 87 12 34 75 33 47 } 
ebullitionsorter e = new ebullitionsorter () 
e.sort(array) 
foreach (int m in array) 
console.writeline(" {0}" m)



//快速排序 
class quicksorter 

private void swap(ref int l ref int r) 

int temp 
temp = l 
l = r 
r = temp 

public void sort(int[] list int low int high) 

int pivot //存储分支点 
int l r 
int mid 
if (high < = low) 
return 
else if (high == low + 1) 

if (list[low] > list[high]) 
swap(ref list[low] ref list[high]) 
return 

mid = (low + high) > > 1 
pivot = list[mid] 
swap(ref list[low] ref list[mid]) 
l = low + 1 
r = high 
do 

while (l < = r & & list[l] < pivot) 
l++ 
while (list[r] > = pivot) 
r-- 
if (l < r) 
swap(ref list[l] ref list[r]) 
} while (l < r) 
list[low] = list[r] 
list[r] = pivot 
if (low + 1 < r) 
sort(list low r - 1) 
if (r + 1 < high) 
sort(list r + 1 high) 
}

 

static void main(string[] args) 

int[] iarrary = new int[] { 1 5 3 6 10 55 9 2 87 12 34 75 33 47 } 
quicksorter q = new quicksorter() 
q.sort(iarrary 0 13) 
for (int m = 0 m < = 13 m++) 
console.writeline(" {0}" iarrary[m]) 


//插入排序 
public class insertionsorter 

public void sort(int[] arr) 

for (int i = 1 i < arr.length i++) 

int t = arr[i] 
int j = i 
while ((j > 0) & & (arr[j - 1] > t)) 

arr[j] = arr[j - 1] //交换顺序 
--j 

arr[j] = t 


static void main(string[] args) 

int[] array = new int[] { 1 5 3 6 10 55 9 2 87 12 34 75 33 47 } 
insertionsorter i = new insertionsorter() 
i.sort(array) 
foreach (int m in array) 
console.writeline(" {0}" m) 


//希尔排序 
public class shellsorter 

public void sort(int[] arr) 

int inc 
for (inc = 1 inc < = arr.length / 9 inc = 3 inc + 1) 
for ( inc > 0 inc /= 3) 

for (int i = inc + 1 i < = arr.length i += inc) 

int t = arr[i - 1] 
int j = i 
while ((j > inc) & & (arr[j - inc - 1] > t)) 

arr[j - 1] = arr[j - inc - 1] //交换数据 
j -= inc 

arr[j - 1] = t 


}

static void main(string[] args) 

int[] array = new int[] { 1 5 3 6 10 55 9 2 87 12 34 75 33 47 } 
shellsorter s = new shellsorter() 
s.sort(array) 
foreach (int m in array) 
console.writeline(" {0}" m)


}

阅读(369) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~