C#实现整数冒泡排序、选择排序

/// <summary>
        /// 交换两个整数的值
        /// </summary>
        /// <param name="aa">数1</param>
        /// <param name="bb">数2</param>

private static void Swap(ref int aa,ref int bb)
        {
            int temp;
            temp = bb;
            bb = aa;
            aa = temp;
        }

// 冒泡排序
   class Program
    {
        static void Main(string[] args)
        {
            int[] a={1,2,5,7,9,8,10,6,4,3};
            BubbleSort(a);
            for (int i = 0; i < a.Length; i++)
                Console.Write(a[i] + " ");
            Console.ReadKey();
        }

/// <summary>
        /// 冒泡排序
        /// </summary>
        /// <param name="a">传入要排序的数组</param>
        private static void BubbleSort(int[] a)
        {
            for (int i = 0; i < a.Length - 1; i++)
            {
                for (int j = 0; j < a.Length - i - 1; j++)
                {
                    if (a[j] < a[j + 1])//降序排列
                    {
                        Swap(ref a[j], ref a[j + 1]);
                    }
                }
            }
        }
   }

//选择排序
 class Program
 {
        static void Main(string[] args)
        {
            int[] a = { 1, 2,  4, 3,6,5,7,9,8 };
            SelectionSort(a);
            for (int i = 0; i < a.Length; i++)
                Console.Write(a[i] + " ");
            Console.ReadKey();
        }
        /// <summary>
        /// 选择排序
        /// </summary>
        /// <param name="a">传入要排序的数组</param>
        private static void SelectionSort(int[] a)
        {
            int k;
            for (int i = 0; i < a.Length - 1; i++)
            {
                k = i;
                for (int j = i+1; j < a.Length ; j++)
                {
                    if (a[j] < a[k])//升序排列
                    {
                        k = j;
                      
                    }
                }
                if(k!=i)
                    Swap(ref a[i], ref a[k]);
            }
        }
     }

--摘自zhouhb

时间: 2025-02-01 23:55:39

C#实现整数冒泡排序、选择排序的相关文章

C# 插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序

以下列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 高速排序 堆排序 归并排序 基数排序 希尔排序,然后是測试的样例.代码位置:http://download.csdn.net/detail/luozuolincool/8040027 排序类: public class Sortings { //插入排序 public void insertSort(int[] array) { int temp = 0; int index = 0; for (int i = 0; i <

C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序

下面列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序,然后是测试的例子.代码位置:http://download.csdn.net/detail/luozuolincool/8040027 排序类: public class Sortings { //插入排序 public void insertSort(int[] array) { int temp = 0; int index = 0; for (int i = 0; i <

经典排序:冒泡排序+选择排序 小结

经典排序:冒泡排序+选择排序 例 FJUTOJ 1842 冒泡排序 原理是取相邻两个数进行大小比较,判断是否交换. 以从小到大排序为例,冒泡排序就像气泡一样,最小的数慢慢浮上来,最大的数慢慢沉下去.那么完整从头到尾做一次之后最后一位就是原序列中最大的数字了.然后只需要对1~(n-1)个数字进行排序,完成后倒数第二个数字也为原序列的1~n-1元素中最大的值.如此重复,进行n-1次一定能完成排序.参考代码: 1 #include <stdio.h> 2 void BubbleSort(int *,

排序算法详解(Go语言实现):冒泡排序/选择排序/快速排序/插入排序

算法是程序的灵魂,而排序算法则是一种最基本的算法.排序算法有许多种,本文介绍4中排序算法:冒泡排序,选择排序,快速排序和插入排序,以从小到大为例. 一.冒泡排序 冒泡排序的原理是,对给定的数组进行多次遍历,每次均比较相邻的两个数,如果前一个比后一个大,则交换这两个数.经过第一次遍历之后,最大的数就在最右侧了:第二次遍历之后,第二大的数就在右数第二个位置了:以此类推. //冒泡排序(排序10000个随机整数,用时约145ms) func bubbleSort(nums []int) { for i

冒泡排序,选择排序,math,Random,System

//冒泡排序public class MathGroup {public static void main(String[] args) {int[] arr= {13,43,25,36,45};for(int x=0;x<arr.length-1;x++) {for(int y=0;y<arr.length-1-x;y++) {if(arr[y]>arr[y+1]) {int num=arr[y];arr[y]=arr[y+1];arr[y+1]=arr[y];}}}System.ou

算法 排序lowB三人组 冒泡排序 选择排序 插入排序

参考博客:基于python的七种经典排序算法   [经典排序算法][集锦]     经典排序算法及python实现 首先明确,算法的实质 是 列表排序.具体就是操作的列表,将无序列表变成有序列表! 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. 排序的稳定性: 经过某种排序后,如果两个记录序号同等,且两者在原无序记录中的先后秩序依然保持不变,则称所使用的排序方法是稳定的,反之是不稳定

基本排序算法(冒泡排序 选择排序 插入排序 快速排序 归并排序 基数排序 希尔排序)

冒泡排序 public static void bubbleSort(int[] arr){ int lgn = arr.length; for (int i = 0; i < lgn - 1; i++) { for (int j = 0; j < lgn - 1 - i; j++) { if(arr[j] > arr[j + 1]){ int temp = arr[j + 1]; arr[j + 1] = arr[j]; arr[j] = temp; } } } } 选择排序 publ

8.8 冒泡排序 选择排序 二分查找 递归使用

冒泡排序: #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 100000 #define M 100000 void show_arr(int * a,int n) { int i; for(i = 0; i < n; i++) { printf("%d ",a[i]); } printf("\n"); } void init_arr(in

冒泡排序,选择排序,二分法

public class Paixu { public static void main(String[] args) { int[]arr={1,2,8,10,18,22,28,100,20}; /* //选择排序 从小到大 for (int i = 0; i < arr.length-1; i++) { for (int j = i+1; j < arr.length; j++) { if (arr[i]>arr[j]) { int tmp=arr[i]; arr[i]=arr[j]

C 冒泡排序 选择排序

数组的冒泡排序与选择排序 [email protected]:~/select$ cat main.c  #include <stdio.h> #include <stdlib.h> int swap_conut  = 0 ; //记录交换次数 int loop_count  = 0 ; //记录循环次数 void swap(int *a,int *b) //指针级 数据交换 { //一个数连续异或同样的数两次,还是这个数 //相同位结果为0,不同位结果为1 *a = *a ^ *