using System;
namespace 排序算法
{
class Class1
{
static void Main(string[] args)
{
int[] arr = new int[]{49,38,65,97,76,13,27,49};
int i;
System.Console.WriteLine("排序前");
for(i=0; i<arr.Length; i++)
System.Console.WriteLine(arr[i]);
simpleSelectionSorting(arr, arr.Length);
System.Console.WriteLine("排序后");
for(i=0; i<arr.Length; i++)
System.Console.WriteLine(arr[i]);
}
/** 起泡排序
* 将长度为 len 的记录表的记录按非递减有序排列
*/
static void bubbleSorting(int[] arr, int len)
{
int i, j;
int temp;
for(i=0; i<len-1; i++) //控制循环的趟数
{
for(j=0; j<len-i-1;j++) //控制某趟数所对应的次数
{
if(arr[j]>arr[j+1]) //逆序则交换
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
/** 简单选择排序
* 将长度为 len 的记录表的记录按非递减有序排列
*/
static void simpleSelectionSorting(int[] arr, int len)
{
int i, j, k;
int temp;
for(i=0; i<len-1; i++) //控制循环的趟数
{
for(j=i,k=i; j<len;j++) //从len-i+1条记录中选择最小的记录
{
if(arr[k]>arr[j])
k = j; //记录较小记录的下标
}
if(k!=i) //如果len-i+1条记录的最小记录和第i条记录不重合
{
temp = arr[k];
arr[k] = arr[i];
arr[i] = temp;
}
}
}
}
}
分享到:
相关推荐
双向起泡排序法是一种在链表结构中实现的排序算法,尤其适用于双向链表。它借鉴了传统冒泡排序的基本思想,但在链表环境中进行了优化,以提高效率。本篇文章将详细探讨双向起泡排序法及其在带头结点的双向链表中的...
相对快速排序,起泡排序是一种更为简单直观的排序算法。其原理是通过遍历数组,反复比较并交换相邻的元素,若后一个元素比前一个元素大,则交换它们的位置。经过一轮遍历后,最大的元素会被“推”到数组的末尾。这个...
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
总结来说,起泡排序是一种简单的排序算法,虽然效率较低,但它的实现逻辑清晰,适用于小规模数据的排序。在C++中,我们可以通过编写函数来实现这个算法,通过比较和交换操作对数组进行排序。这个压缩包内的`起泡排序...
本项目旨在实现并比较六种经典的排序算法——直接插入排序、折半插入排序、起泡排序、简单选择排序、堆排序以及2-路归并排序,使用C语言编程。为了全面评估这些算法,我们将在一组随机生成的30000个整数上运行它们,...
1) 对以下6种常用的内部排序算法进行比较:起泡排序,直接插入排序,简单选择排序,快速排序,希尔排序,堆排序。 2) 待排序记录的文件个数不小于1000( 其数据用伪随机数产生),至少用5组不同的输入数据作比较;比较...
起泡排序是一种简单的排序算法,它的时间复杂度为 O(n^2),其中 n 是数组的长度。该算法通过反复地比较和交换数组中的元素来实现排序。在本实验中,我们使用了以下代码实现起泡排序: ```c void BubbleSort(int r[]...
起泡排序是一种简单的排序算法,它通过不断交换相邻的逆序元素来逐步将最大或最小的元素“冒”到数组的一端。在最好的情况下,即输入数组已经部分有序,起泡排序的时间复杂度为O(n),而最坏的情况,即输入数组完全...
起泡法,又称冒泡排序,是计算机科学中一种简单的排序算法。它的基本思想是通过重复遍历待排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来,直到没有再需要交换的元素,即所有的元素都已经按照...
起泡排序是一种简单的排序算法,其基本思想是通过重复遍历待排序的数列,比较相邻元素并根据需要交换它们的位置,直到整个数列变为有序。在最坏的情况下,起泡排序需要进行n(n-1)/2次比较和交换,因此其时间复杂度为...
冒泡排序,又称起泡排序,是一种简单的排序算法。它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。...
任务:用程序实现插入法排序、起泡法改进算法排序; 利用插入排序和冒泡法的改进算法,将用户随机输入的一列数按递增的顺序排好。 输入的数据形式为任何一个正整数,大小不限。 输出的形式:数字大小逐个递增的数列。
在IT领域,排序算法是计算机科学中的基础,尤其在编程语言如C++中,掌握不同的排序算法对于优化程序性能至关重要。下面将详细讲解这7种排序算法:快速排序、归并排序、插入排序、选择排序、冒泡排序、堆排序以及希尔...
直接插入排序是一种简单直观的排序算法,它的工作原理类似于打扑克牌时的排序。在已排序的部分序列中,逐个插入未排序元素,每次插入都会从后向前比较,找到合适的插入位置。这种算法对于小规模或接近有序的数组...
起泡法排序的排序过程如下,首先将第一个记录与第二个记录进行比较,若为逆序(R[1]>R[2]),则将两个记录交换,然后比较第二个记录和第三个记录。依次类推,直到第n- 1个记录完成比较为止。上述过程称为第一次起泡...
**起泡排序**是一种简单直观的排序算法,它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。起泡排序...
选择法和起泡法排序都是基于比较的简单排序算法,适用于小规模数据或作为教学工具。虽然它们的时间效率不如更高级的排序算法(如快速排序、归并排序等),但它们的概念清晰、易于理解和实现,是学习排序算法的基础。...
起泡排序是一种基础的排序算法,它通过重复遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,直到没有再需要交换的元素为止。这个过程就像是水中的气泡逐渐上升到水面一样,因此得名“起泡...
起泡排序(Bubble Sort)是一种简单的排序算法,其基本思想是通过不断地交换相邻的未按顺序排列的元素,逐步将最大或最小的元素移动到序列的一端。在IT行业的笔试中,起泡排序是一个非常常见的考点,它不仅能够帮助...
各种排序算法效率分析比较及源...起泡排序,快速排序,归并排序;简单选择排序,树形选择排序和堆排序。 通过输入不同的数据量和数据大小正序,逆序和乱序情况比较各种排序算法的效率。 其中树形选择排序算法有点错误。