//// main.c// 指针和数组//// Created by 邱学伟 on 15/7/25.// Copyright (c) 2015年 邱学伟. All rights reserved.//#include <stdio.h>#define N 4//冒泡法用指针实现//输入int *enterNumber();
//排序void sortNumberAsc(int *ptr);
//输出void printNumber(int *ptr);int *enterNumber(){ //输入staticint ary[N];printf("请输入一组数字:");for (int i=0; i<N; i++) {scanf("%d",&ary[i]);}int *p=ary;ret...
冒泡排序(Bubble Sort,台湾译为:泡沫排序或气泡排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端维基百科:点击打开链接 [cpp] view plain copy /* 用选择法对10个数进行排序 */ #include<stdio.h> void ma...
题目要求编写一个C语言程序,实现基本的冒泡排序算法.算法冒泡排序,用一句话来总结:一组数中,相邻的两个数进行比较、交换,将最大(小)数交换至尾(首)部,即完成了一次冒泡排序要想对N个数字进行排序,循环N次即可.如果真的不理解冒泡排序算法,请点击:冒泡排序_360百科核心代码//方式一:从头向尾遍历,将最大数(相对)沉入尾部(相对)
void BubbleSort1(int *arr,int sz){int i = 0;int j = 0;assert(arr);for(i=0;i<sz-1;i++){for(j=0;j<s...
1 #include<stdio.h>2int main()3{4int arr[]={99,94,95,93,92,91,90,88,97,89};5int i,j;6for(i=0;i<10;i++)7 {8if(i!=9)9 printf("%d,",arr[i]);
10else11 printf("%d",arr[i]);
12 }
13for(i=8;i>=0;i--)
14 {
15for(j=0;j<=i;j++)
16 {
17if(arr[j]>arr[j+1])
18 {
19int temp;
20 temp=arr[j];
21 arr[j]=arr[j+1];
22 ...
最近在学习C语言,虽然大学学过,但是毕业后从事的是跟计算机完全无关的工作,把大学学的都忘完了。重拾以前的知识,从新来过,心态和逻辑思维都与刚学那时候不一样,说不清楚什么感觉。以下是自己写的冒泡排序(应该是最简单的写法):原文:http://www.cnblogs.com/haoxiaopa/p/4821375.html
1. 冒泡排序简介(默认从小到大排序) 核心思想:只比较相邻的两个元素,如果满足条件就交换 5 8 2 1 6 9 4 3 7 0目标:0 1 2 3 4 5 6 7 8 9 第一次排序: 5 < 8 不交换 5 8 2 1 6 9 4 3 7 0 8 >2 满足条件 交换.... 5 2 8 1 6 9 4 3 7 0 5 2 1 8 6 9 4 3 7 0 5 2 1 6 8 9 4 3 7 0 5 2 1 6 8 9 4 3 7 0 5 2 1 6 8 4 9 3 7 0 5 2 1 6 8 4 3 9 7 0 5 2 1 6 8 4 3 7 9 0 5 2 1 6 8 ...
话不多说,代码如下: 1 #include<stdio.h>2 3int main()4{5int a[100], i, j, t, n;6 printf("请输入要排序的数的个数:");7 scanf_s("%d", &n); //输入一个数n,表示接下来有n个数 8for (i = 1; i <= n; i++)9 {
10//循环读入n个数到数组a中11 printf("请输入要排序的数:\n");
12 scanf_s("%d", &a[i]);
13 }
14//冒泡排序的核心部分15for (i = 1; i <= n; i++) //n个数排序,只进行n-1趟1...
继上次写直接插入排序,有一段时间了,现在再写上冒泡排序,该排序算法,容易记忆,在小规模的场景中应用比较广泛,一旦需要解决的问题规模变大,该排序算法的效率明显降低因为该算法的时间复杂度为ο(n2)所以选择冒泡排序的时候需要慎重考虑问题的规模。其实冒泡排序可以用一个公式总结:如果有N个数需要排序,首先考虑两重循环外层循环for(int i=0;i<N-1;i++),内层循环for(int j=0;j<N-i-1;j++),即内层循环数=N-外层循环计数-1...
#include<stdio.h>
int main(){
int i,j,temp,a[10];
printf("please input 10 numbers:");
for(i=0;i<10;i++)
{scanf("%d",&a[i]);
}printf("\n");for(i=0;i<9;i++)for(j=0;j<9-i;j++){if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}printf("the sorted numbers:\n");for(j=0;j<10;j++){printf("%d ",a[j]);}printf("\n");return0;
} 原文:https://www.cnblogs.com/hanweiyan/p/11918842.html
之前自学数据结构的时候看过C语言版的四种基本排序法,C语言都忘的差不多了,最近有空就用php将四种排序法重新写了一遍,复习一下日益生疏的算法。直接贴上代码。";print_r($var);echo "";
}$arr=array(33,11,22,66,55,44,88,99,77);
printf("**原数组**");
p($arr);
/**
*冒泡排序法
* @param $arr 排序数组
*思路:和相邻的数字对比,每次对比如果左边比右边大则交换位置。
*两个节点,一个方向:两次循环次数,冒泡方向(即$j的...
/*** 冒泡排序:稳定,时间复杂度 O(n^2)* 冒泡排序方法是最简单的排序方法。这种方法的基本思想是,* 将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,* 从而要往上浮。在冒泡排序算法中我们要对这个“气泡”序列处理若干遍。* 所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。* 如果发现两个相邻元素的顺序不对,即“轻”的元素在下面,就交换它们的位置。* 显然,处理一遍之...
以下为原创内容,禁止转载
C语言实现各排序算法:冒泡排序、选择排序、插入排序、归并排序、快速排序、希尔排序、堆排序、计数排序
1.引入所需头文件
#include <stdio.h>
#include <malloc.h> #动态申请内存
#include <stdlib.h>
#include <time.h>
#include <sys/timeb.h>
#include <string.h>2.函数声明
int* makeData(int total, int m, int n);//生成一个含有total个介于m和n之间的无序数的数组
long long getTimeStamp();//读...
分享一下我对C语言中冒泡排序算法的学习和理解(裂开了,足足写了一天,自闭中…)
冒泡排序
冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们的位置交换过来。走访数列重复地进行直到排序完成。因为越大(小)的元素经过交换会慢慢地"浮"到数列的顶端(尾端),就如同碳酸饮料中的气泡一样,故名“冒泡排序”。
算法原理
以从大到小降序排列为例。...
原文链接:https://www.runoob.com/cprogramming/c-sort-algorithm.html
1、冒泡排序:冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。#include <stdio.h>
void bubble_sort(int arr[], int len) {int i, j, temp;for (i = 0; i < len - 1; i++)for (j = 0; j < len - 1 - i; j++)if (arr[j] > arr[j + 1])...
1 选择排序#include <stdio.h>//交换两个数void swap(int* a,int* b){if(a != b){*a = *a ^ *b;*b = *a ^ *b;*a = *a ^ *b;}
}//从大到小排序
//pSortArray为需要排序的数组,size为数组中元素的个数
void swapSort(int* pSortArray, int size)
{int iMax;int iMaxIndex;for(int i = 0;i < size-1;i++){iMaxIndex = i;for(int j = i + 1;j < size;j++){if(pSortArray[iMaxIndex] < pSortArray[j])iMaxIndex = j; //找出未排序部分最...