c语言学习日记-冒泡排序算法、选择算法、插入算法、希尔排序

 

冒泡排序、选择排序、插入算法 

1.冒泡排序

冒泡排序的关键在于相邻元素两两比较,较大的元素置于一边 ,之后重复比较

算法演示图

代码实现

  1. public static Sort(int[] a) {
        for (int i = 0; i < sizeof(a)/sizeof(int); i++) {
            for (int j = 0; j < sizeof(a)/sizeof(int) - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    

     

2.选择排序

算法演示图

算法实现

void Sort(int a[]){
    int temp;
    for(int i=0;i

 

3.插入算法

插入算法的思想是将数组分成两个部分来看,前一部分是有序序列,后一部分是 无序序列,扫描到的无序序序列的首个元素 和 依次和前面有序序列的数字进行比交 并插入合适的位置。

算法演示

void Sort(int a[]){
    for(int i=1;i=0;j--){
            if(a[j]>a[j+1]){
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;

            }
        }
    }

5.希尔算法

写入算法(shell Sort)也称为缩小增量排序,希尔排序是对插入排序的一种改进。按下标的一定增量进行分组,对每组进行插入排序算法、随着增量的减少,每组的元素数量越来越多 ,当增量为1时,算法终止

算法演示图

代码实现

 

       void ShellSort(int a[])
        {
            for (int step = (sizeof(a) / sizeof(int)) / 2; step > 0; step / 2)
            {
                for (int i = step; i < sizeof(a) / sizeof(int); i++)
                {
                    for (int j = i - step; j >= 0; j -= step)
                    {
                        if (a[j] > a[j + step])
                        {
                            int temp = a[j];
                            a[j] = a[j + step];
                            a[j + step] = temp;
                        }
                    }
                }
            }
        }
    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(c语言,排序算法)