冒泡排序快速排序C语言】的更多相关文章

快速排序_C语言_数组 #include <stdio.h> void quickSort(int *, int, int); int searchPos(int *, int, int); int main(int argc, const char * argv[]) { //定义乱序数组 int a[10] = {9, 3, 4, 6, 1, 2, 7, 8, 5, 0}; //排序前输出: printf("乱序:\n"); for (int i = 0; i <…
1.排序分为以下四类共七种排序方法: 交换排序: 1) 冒泡排序  2) 快速排序 选择排序: 3) 直接选择排序  4) 堆排序 插入排序: 5) 直接插入排序  6) 希尔排序 合并排序: 7) 合并排序 2.冒泡排序 时间复杂度O(n2) 其基本思想是:通过相邻元素之间的比较和交换,使关键字较小的元素逐渐从底部移向顶部,就像水底下的气泡一样逐渐向上冒泡. public class BubbleSort { public static void bubbleSort(int [] arr){…
冒泡排序: for(var i=0;i<arr.length-1;i++){ for(var j=0;j<arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ var temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } 选择排序: var arr=[2,5,4,6,3,7,1]; for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<arr.length…
内部排序: 就是使用内存空间来排序 外部排序: 就是数据量很大,需要借助外部存储(文件)来排序. 直接上代码: package com.lvcai; public class Sort { public static void main(String[] args) { //排序 分为: 内部排序(使用内存来排序) , 外部排序(需要借助外部存储) // 内部排序: // int[] array = {100, 6, 9, 2, 1, 0, 54,23,5}; // int[] arr = ne…
$a=array('3','8','1','4','11','7'); print_r($a); $len = count($a); //从小到大 for($i=1;$i<$len;$i++) { for($j=$len-1;$j>=$i;$j--) if($a[$j]<$a[$j-1]) {//如果是从大到小的话,只要在这里的判断改成if($b[$j]>$b[$j-1])就可以了 $x=$a[$j];  $a[$j]=$a[$j-1];  $a[$j-1]=$x; } } pri…
看了这本<数据结构与算法分析>中的快速排序. 写下自己理解后的代码,以备后用. #include "stdio.h" void insertSort(int arr[], int N) { int j, tmp, P; ; P< N; P++) { tmp = arr[P]; && arr[j-] > tmp; j-- ) arr[j] = arr[j-]; arr[j] = tmp; } } void swap(int *first, int…
//由大到小//快速排序(待排序数组,左侧起点,右侧起点) void quickSort(int *array, int l, int r) { if ( l >= r) return; int i = l,j = r; int temp; while (i != j) { for ( ;j>i;j--) { if (array[j] > array[i]) { temp = array[j]; array[j] = array[i]; array[i] = temp; break; }…
转载于> http://blog.chinaunix.net/uid-26404477-id-3329885.html 总的关键字比较次数:O(nlgn) 尽管快速排序的最坏时间为O(n2),但就平均性能而言,它是基于关键字比较的内部排序算法中速度最快者,快速排序亦因此而得名.它的平均时间复杂度为O(nlgn) #include <stdio.h> #include <stdlib.h> void swap(int *x,int *y) { int temp; temp =…
冒泡排序是一种稳定排序,时间复杂度平均为O(n^2),最好的时间复杂度为O(n),最坏为O(n^2). 排序时每次只比较当前元素与后一个 元素的大小,如果当前元素大于后一个元素,则交换,如此循环直到队尾,每轮排序都可以保证将当前排序下最大的元素送到未排序部分的队尾. 有n个元素要排列,故要执行n次数组的整体大排列. 每次大排列中都要比较当前元素与后一个元素的大小,每轮要比较n-1次,但是因为之前的每一轮都将一个元素放置到了正确的位置,所以无需比较,若设之前累计循环了i次,将i个元素正确地放置在了…
# include<stdio.h> int main(void) { int arr[10]={5,4,7,9,2,3,1,6,10,8}; //定义一个位排序的数组 int i; //定义循环次数 int n = 0; //定义排序次数 int length=10; //定义数组长度 while(n < length) //控制比较次数 { for(i = 0 ; i < length-1-n ; i++) { int tmp = 0; //交换顺序时临时存放数字 if(arr…