冒泡排序法
以下是冒泡排序的算法,
第一种方法为:
第一种方法为:
static void Main(string[] args)
{
var intS = new int[]{ 5, 6, 78, 99, 45, 66, 452, 888, 163 };
for (int i = 0; i < intS.Length; i++) {
for (int j = 0; j < intS.Length - i - 1; j++) {
if(intS[j] > intS[j + 1]){
int temp = intS[j + 1];
intS[j + 1] = intS[j];
intS[j] = temp;
}
}
}
foreach(var i in intS){
Console.WriteLine(i);
}
}
{
var intS = new int[]{ 5, 6, 78, 99, 45, 66, 452, 888, 163 };
for (int i = 0; i < intS.Length; i++) {
for (int j = 0; j < intS.Length - i - 1; j++) {
if(intS[j] > intS[j + 1]){
int temp = intS[j + 1];
intS[j + 1] = intS[j];
intS[j] = temp;
}
}
}
foreach(var i in intS){
Console.WriteLine(i);
}
}
第二种方法为:
namespace ConsoleApplication7
{
class Program
{
static void Main(string[] args)
{
int[] intArr = { 120, 3, 3, 5, 6, 7, 88, 5, 44, 3, 2, 3, 44, 5, 66, 4, 54 };
bool swapped;
do
{
swapped = false;
for (int i = 0; i < intArr.Length - 1; i++)
{
if (intArr[i] > intArr[i + 1]) {
int tempI = intArr[i];
intArr[i] = intArr[i + 1];
intArr[i + 1] = tempI;
swapped = true;
}
}
} while (swapped);
foreach (int forInt in intArr)
{
Console.Write(forInt + ",");
}
}
}
}
以上两种循环方式各有各的优点,第一种方法,内层循环更智能些;第二种方法,外层循环是按需循环的。
{
class Program
{
static void Main(string[] args)
{
int[] intArr = { 120, 3, 3, 5, 6, 7, 88, 5, 44, 3, 2, 3, 44, 5, 66, 4, 54 };
bool swapped;
do
{
swapped = false;
for (int i = 0; i < intArr.Length - 1; i++)
{
if (intArr[i] > intArr[i + 1]) {
int tempI = intArr[i];
intArr[i] = intArr[i + 1];
intArr[i + 1] = tempI;
swapped = true;
}
}
} while (swapped);
foreach (int forInt in intArr)
{
Console.Write(forInt + ",");
}
}
}
}