冒泡和插入排序

package paixu;

public class MaoPaoPaiXu {
	public static void main( String agrs[]){
	      /**
	       * 冒泡排序
	       * */
		int[] arr = {23,22,12,56,45};
          int temp = -1;
	      for(int i=0;i<arr.length-1;i++) {
	          for(int j=i+1;j<arr.length;j++) {
	              if(arr[i]>arr[j]) {
	                  temp = arr[i];
	                  arr[i] = arr[j];
	                  arr[j] = temp;
	              }
	          }
	      }
	      for(int i=0;i<arr.length;i++){
	    	  System.out.println("冒泡排序="+arr[i]);
	      }
	      System.out.println("=========我是分割线=========");
	      /**
	       * 插入排序方法1
	       * */
//	      int i, j;
//	      int target;
//	      int[] arr1 = {23,22,12,56,45};
//	      for (i = 0; i < arr1.length; i++){
//	          j = i;
//	          target = arr1[i];
//	          while (j > 0 && target < arr1[j - 1]){
//	              arr1[j] = arr1[j - 1];
//	              j--;
//	          }
//	          arr1[j] = target;
//	      }
//	      for(int m=0;m<arr1.length;m++){
//	    	  System.out.println("插入排序="+arr[m]);
//	      }
	      /**
	       * 插入排序方法2
	       * */
	      int a[]={49,38,65,97,76,13,27,49,78,34,12,64};
	      int temp1=0;
	      for(int i=1;i<a.length;i++){
	    	 int j=i-1;
	         temp1=a[i];
	         for(;j>=0&&temp1<a[j];j--){
	         a[j+1]=a[j];                       //将大于temp的值整体后移一个单位
	         }
	         a[j+1]=temp1;
	      }
	      for(int i=0;i<a.length;i++){
	    	  System.out.println("插入排序="+a[i]);

	  }
	}

}

  

时间: 2024-11-13 17:57:58

冒泡和插入排序的相关文章

冒泡以及插入排序算法的改进

冒泡排序 说明:此文中的排序算法数组,第一个数(即0下标)没有作为数据处理(i从1开始),arr[0]用作哨岗,部分排序算法(如插入排序)比较时需要用到 排序思想: 1.假设共有N个数,从头开始,比较相邻的两个数,如果前一个数比后一个数大,则交换位置,否则不变,继续比较. 2.按照这样的方法对数组从0到N-1进行遍历,一轮遍历完,则最后一个数为最大值. 3.N=N-1,按照1,2的思想遍历N-1轮,则数组从大到小排序成功 void Popsort(int arr[],int n)//冒泡排序 {

排序:正序冒泡,交错冒泡,插入排序,选择排序,快速排序

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<time.h> 4 #include<string.h> 5 const int N=10; //修改随机数据量 6 bool onOroff=1; //数组打印开关:1要打印,0不打印 7 void bubble_sort(int a[],int n) 8 { 9 for(int i=0 ; i<N ; ++i) 10 { 11 for(int j

php实现的冒泡,插入排序,希尔排序,归并排序

<?php/***选择排序也就是冒泡排序,就是基于各个数据之间的对比来排序**/$arr = array(2,1,7,5,8,9,3,4,10,30,28,24);function bubbleSort($arr) {    $len = count($arr);    $k = 0;    for($i=0;$i<$len;$i++){    $k++;        for($j=$i+1;$j<$len;$j++) {            if($arr[$i] > $ar

C语言选择、冒泡、插入排序算法

#include <stdio.h> #pragma mark 选择排序算法 void xuanze_array(int *array, int len) { for (int i = 0; i<len-1; i++) { for (int j = i+1; j<len; j++) { if (array[i]<array[j]) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } } } } #pra

选择 冒泡 快速 插入排序

/** * 演示各种排序法 */package com.test1;import java.util.*;public class Demo5_3 { public static void main(String[] args) { // TODO Auto-generated method stub int len=8; int arr1[]=new int[len]; for(int i=0;i<len;i++) { //让程序随机产生一个1-10000的数 //Math.random()会

排高低:冒泡与插入排序。不要管别人,自己设计的才是自己的。

算法问题的一个分类:排高低. 背景:有一系列的值,有大有小,由于某个目的(比如两两分组让最小者的和最大.比如容纳最多和不超过某个值的元素.等等),需要先把它们排一下高低. 一个数值数组,怎么给里面的元素排出高低(比如由小到大地排序)? 两两比较不是问题,要解决的是这两个问题: * 谁跟谁比,怎么安排? * 比后怎么处置,怎么让问题变小? 全由你来设计! 设计原则:让问题变小,最终没有. 不能随意地比较,比如安排单数的元素来比较,这个设计看不出能解决问题. 不能比完之后却没有进一步的动作,只比较却

数据结构基础(3) --Permutation &amp; 插入排序

Permutation(排列组合) 排列问题: 设R = {r1, r2, ... , rn}是要进行排列的n个元素, Ri = R-{ri}; 集合X中元素的全排列记为Permutation(X), (ri)Permutation(X)表示在全排列Permutation(X)的每一个排列前加上前缀ri得到的排列. R的全排列可归纳定义如下: 当n=1时,Permutation(R)={r},r是集合R中唯一的元素: 当n>1时,Permutation(R)由(r1)Permutation(R1

iOS开发工程师面试题(二)

1.手写冒泡跟插入排序 冒泡排序来源于生活常识,相当于把数组竖起来,轻的向上,重的向下.void bubbleSort(int[] unsorted) { for (int i = 0; i < unsorted.Length; i++) { for (int j = i; j < unsorted.Length; j++) { if (unsorted[i] > unsorted[j]) { int temp = unsorted[i]; unsorted[i] = unsorted[

回归机房

开始第二轮的学习,今天学习了三种排序方法(选择,冒泡,插入排序)还有sort函数,发现学完sort函数后,排序就特别的简单,但是前三种还是要懂的 今天下午做题有点感觉了,需要注意的是是否要在循环内部就归零,否则就会一直累加. sort(a+1,a+1+n); 还有注意上面一句话,看是否循环是从1开始,以及要注意数组的范围一定要够用,否则就会过不去: 差不多了,就这吧,今天感觉好累,早睡早起啦