标签:style blog http color java 使用 os io
c#(两个相邻的数依次比较大小) 返回结果:2,13,27,38,48,49,49,65,76,92,97
int[] array = { 49, 38, 65, 97, 76, 13, 27,2,48,92 ,49};
public int[] bubbleSort(int[] array)
{
int temp=0;
for (int i = 0; i < array.Length - 1; i++)
{
for (int j = i+1; j < array.Length; j++)
{
if (array[i] > array[j])
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
}
}
return array;
}
C#(从第一个数开始从前往后依次比较出最小的数,把最大的数和最小的数相互替换)
返回结果:2,13,27,38,48,49,49,65,76,92,97
int[] array = { 49, 38, 65, 97, 76, 13, 27,2,48,92 ,49};
public void SimpleSelectSort(int[] array)
{
int tmp = 0;
int t = 0;//最小数标记
for (int i = 0; i < array.Length; i++)
{
t = i;
for (int j = i + 1; j < array.Length; j++)
{
if (array[t] > array[j])
{
t = j;
}
}
tmp = array[i];
array[i] = array[t];
array[t] = tmp;
}
}
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的 所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
C# 返回结果:2,13,27,38,48,49,49,65,76,92,97
static void Main(string[] args)
{
int[] array={49,38,65,97,76,13,27};
sort(array,0,array.Length-1);
Console.ReadLine();
}
/**一次排序单元,完成此方法,key左边都比key小,key右边都比key大。
**@paramarray排序数组
**@paramlow排序起始位置
**@paramhigh排序结束位置
**@return单元排序后的数组
*/
private static int sortUnit(int[] array, int low, int high)
{
int key = array[low];
while (low < high)
{
/*从后向前搜索比key小的值*/
while (array[high] >= key && high > low)
--high;
/*比key小的放左边*/
array[low] = array[high];
/*从前向后搜索比key大的值,比key大的放右边*/
while (array[low] <= key && high > low)
++low;
/*比key大的放右边*/
array[high] = array[low];
}
/*左边都比key小,右边都比key大。
//将key放在游标当前位置。
//此时low等于high
*/
array[low] = key;
Console.WriteLine(string.Join(",", array));
return high;
}
/**快速排序
*@paramarry
*@return
*/
public static void sort(int[] array, int low, int high)
{
if (low >= high)
return;
/*完成一次单元排序*/
int index = sortUnit(array, low, high);
/*对左边单元进行排序*/
sort(array, low, index - 1);
/*对右边单元进行排序*/
sort(array, index + 1, high);
}
php 返回结果:2,13,27,38,48,49,49,65,76,92,97
$arr = array (23, 12, 43, 3, 54, 111, 3242, 4, 66, 9, 98, 234, 7, 46, 2 ); var_dump ( $arr ); $result = quickSort ( $arr ); var_dump ( $result ); function quickSort($arr) { if (count ( $arr ) > 1) { $k = $arr [0]; $x = array (); $y = array (); $_size = count ( $arr ); for($i = 1; $i < $_size; $i ++) { if ($arr [$i] <= $k) { $x [] = $arr [$i]; } else { $y [] = $arr [$i]; } } $x = $this->quickSort ( $x ); $y = $this->quickSort ( $y ); return array_merge ( $x, array ($k ), $y ); } else { return $arr; } }
鸡尾酒排序也就是定向冒泡排序, 鸡尾酒搅拌排序, 搅拌排序 (也可以视作选择排序的一种变形), 涟漪排序, 来回排序 or 快乐小时排序, 是冒泡排序的一种变形。此演算法与冒泡排序的不同处在于排序时是以双向在序列中进行排序
原理:使用鸡尾酒排序为一列数字进行排序的过程可以通过右图形象的展示出来:
int[] array = { 49, 38, 65, 97, 76, 13, 27,2,48,92 ,49};
public static int[] cocktailSort(int[] src)
{
//将最小值排到队尾
for(int i = 0 ; i < src.length/2 ; i++)
{
for(int j = i ; j < src.length-i-1 ; j++)
{
if(src[j] < src[j+1])
{
int temp = src[j];
src[j] = src[j+1];
src[j+1] = temp;
}
System.out.println("交换小"+Arrays.toString(src));
}
//将最大值排到队头
for(int j = src.length-1-(i+1); j > i ; j--)
{
if(src[j] > src[j-1])
{
int temp = src[j];
src[j] = src[j-1];
src[j-1] = temp;
}
System.out.println("交换大"+Arrays.toString(src));
}
System.out.println("第"+i+"次排序结果:"+Arrays.toString(src));
}
return src;
}
c#实例:
输出结果:2,13,27,38,48,49,49,65,76,92,97
int myArray={ 49, 38, 65, 97, 76, 13, 27,2,48,92 ,49};
public static void CockTailSort(int[] myArray)
{
int low, up, index, i;
low = 0;//数组起始索引
up = myArray.Length - 1;//数组索引最大值
index = low;//临时变量
//判断数组中是否有多个元素
while (up > low)//每一次进入while循环都会找出相应范围内最大最小的元素并分别放到相应的位置
{
//进入该for循环会将索引限定范围内最大的元素放到最右边
for (i = low; i < up; i++)//从上向下扫描
{
if (myArray[i] > myArray[i + 1])
{
int temp;
temp = myArray[i];
myArray[i] = myArray[i + 1];
myArray[i +1] = temp;
index = i;//记录当前索引
}
}
up = index;//记录最后一个交换的位置
//进入该for循环会将索引限定范围内最小的元素放到最左边
for (i = up; i > low; i--)//从最后一个交换位置从下往上扫描
{
if (myArray[i] < myArray[i - 1])
{
int temp;
temp = myArray[i];
myArray[i] = myArray[i - 1];
myArray[i - 1] = temp;
index = i;
}
}
low = index;//记录最后一个交换的位置
}
}
标签:style blog http color java 使用 os io
原文地址:http://www.cnblogs.com/yiwantang/p/3927586.html