c语言冒泡和选择排序

冒泡排序代码:

//冒泡排序
void arr(){
    int arr[] = {3,2,4,1};
    int count = sizeof(arr)/sizeof(arr[0]);

    for (int i=0; i<count-1; i++) {
        for (int j=0; j<count-i-1; j++) {
           
            if (arr[j]<arr[j+1]) {
                int temp;
                temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
               
            }
           
        }
    }
    
    for (int x = 0; x<count; x++) {
        
        printf("count=%i,value=%i\n",count,arr[x]);
        
    }
    
    
}

冒泡的指针排序:

void pointArr(){
    int arr[] = {5,4,6,2,7,1,3};
    int count = sizeof(arr)/sizeof(arr[0]);
    
    int *pointer;
    pointer = arr;
    for (int i = 0; i<count-1; i++) {
        for (int j = 0; j<count-i-1; j++) {
            if (*(pointer+j)<*(pointer+j+1)) {
                int tem;
                tem = *(pointer+j);
                *(pointer+j) = *(pointer+j+1);
                *(pointer+j+1) = tem;
            }
        }
    }
    
    for (int x = 0; x<count; x++) {
        
        printf("count=%i,value=%i\n",count,arr[x]);
        
    }
    
}

选择排序代码:

void selectArr(){
    int arr[] = {4,3,5,2,10,50,20,45};
    int count = sizeof(arr)/sizeof(arr[0]);
    
    for (int i = 0; i<count-1; i++) {
        for (int j = i+1; j<count; j++) {
            if (arr[i]>arr[j]) {
                int temp;
                temp = arr[i];
                arr[i] = arr[j];
                arr[j]=temp;
            }
        }
    }
    for (int x = 0; x<count; x++) {
        
        printf("count=%i,value=%i\n",count,arr[x]);
        
    }
    
}
时间: 2024-08-07 04:20:51

c语言冒泡和选择排序的相关文章

基于python语言的经典排序法(冒泡法和选择排序法)

前 每逢周末就遇雨期,闲暇之余,捣鼓了下python,心心念想学习,今天就在电脑上装了个2.7,学习了下经典算法,冒泡与选择排序法 第一次写关于python的文章,说的不当之处,多多指正,我积极改正 在之前,曾写过使用java和C语言实现该两种排序法,详情见https://www.cnblogs.com/hong-fithing/p/7615907.html 搭建环境,准备工作就不冗余介绍了,网上搜罗一大堆 目录 冒泡排序法 选择排序法 冒泡排序法 冒泡类似于汽水现象,摇动一下,就有很多泡往上冒

一招教你搞定c语言中冒泡和选择排序

一.选择排序 很多学习C语言的同学都被这两种排序而难倒.每次拿到这样一组数字就不知道从何下手了,要不就是那些运用的不太熟悉,每次写起代码来又得花一大半时间让费在这排序上,总是找不到一种好的办法去学习它.那么接下来,我将我所学到的排序方法分享给大家,告诉你们以后遇到这种排序千万不能急.当然,很多企业面试的时候种排序也是必考的,所以我们务必要把他们搞懂,不能让这么小小的排序阻挡了我们前进的步伐.好了,那我们来看看吧! 我选择的方法是函数调用的方法,将排序的具体方式通过函数调用到main函数中执行,具

算法小结-冒泡、选择排序、直接插入排序

1.冒泡排序法:比较相邻的两个元素,如果前边比后边大,就对调两元素,一趟下来,最大的数放在最右边,就像泡泡上升一样. 代码: /* * 冒泡 */ static void bubble_sort(int[] array) { for (int i = 0; i < array.length; i++) { for (int j = i; j < array.length; j++) { if (array[i] > array[j]) { int temp = array[i]; arr

冒泡法和选择排序法(比较容易写混)

1 #include<stdio.h> 2 3 4 //冒泡排序法 5 6 void bubbling(int a[],int n); 7 8 //选择排序法 9 void choose(int a[],int n); 10 int main() 11 { 12 int i; 13 int s[6]; 14 printf("please enter five numbers:\n"); 15 for(i=1;i<6;i++) 16 { 17 scanf("%

排序算法(三)冒泡、选择排序的Python实现及算法优化详解

说在前面 最近一年太忙,博客长草了.近日用Python实现了常用排序算法,供大家参考. Java版本排序算法及优化,请看以前的文章. <排序算法之简单排序(冒泡.选择.插入)> <排序算法(二)堆排序> 1.排序概念 这里不再赘述,请参看前面2篇文章 2.简单排序之冒泡法Python实现及优化 原理图 2.1.基本实现 num_list = [     [1, 9, 8, 5, 6, 7, 4, 3, 2],     [1, 2, 3, 4, 5, 6, 7, 8, 9] ] nu

简单排序的俩种思想——冒泡法和选择排序法

冒泡法: 基本思想:每次将相邻的两个数比较,将小的调到前头(即为升序排列).首先比较第一和第二两个数,小的调到前头,再将比完后的第二个数与第三个数比较,同理小的调到前头.如此比较下去.假设有6个数参与排序,则第一趟两两之间共比较5次,第一趟比完之后最大的数已经到底.然后进行第二趟比较,两两之间共比较4次,将次大数调到倒数第二个数的位置.共需比较5趟,5趟比完之后呈现升序排列. 总结规律:如果有n个数,则要进行n-1趟比较.在第一趟比较中要进行n-1次两两比较,在第j趟比较中要进行n-j次比较.

C语言练习之 选择排序(四)

摘要:选择排序在C语言中也有着广泛的应用,笔者在学习别人单片机代码的过程中经常看到许多经验丰富的老程序员 采用选择排序,因此,笔者也记录下来了选择排序. 目录 1.选择排序思想 2.选择排序示意图 3.算法时间复杂度和稳定性 4.示例代码 5.vs2015运行示意图 一.选择排序思想 选择排序是一种直观的排序思想,简单来说,就是从未排序的数列中找出最小的元素,放在起始地址,接下来在从未排序的数列中选择次小的元素放在第二位置, 接下来,以此类推. 注:笔者是从小到大的顺序进行说明的. 二.选择排序

链表上的冒泡、选择排序算法

做如下定义 typedef struct LNode { int num; char name[20]; struct LNode *next; } LNode, *LinkList; 冒泡排序算法 void BubbleSort(LinkList &L) { LinkList i = NULL, j = NULL; for (i = L; i->next->next != NULL; i = i->next) { for (j =i ; j->next->next

面试题_抽象工厂,字符反串,冒泡与选择排序

1:写一个抽象工厂模式 java实例 ?2,:String str="ABCDF" 把这个字符串怎么排序成"FDCBA"? 3:写一个冒泡排序把这个数组排一下"1,9,3,4,7,2,8,5,"? 1) public interface Work{ void doWork(); } CreateProduct: public class Studentwork implements Work{ public void doWork() {